随笔分类 - 紫书第八章 高效算法设计
摘要:看了这篇博客https://blog.csdn.net/u013520118/article/details/48032599但是这篇里面没有写结论的证明, 我来证明一下。首先结论是对于E图而言,如果存在i和j结点到k1都有边,而i和j中只有一个结点到k2有边,则这个...
阅读全文
摘要:又是一道非常复杂的构造法……#include#include#define REP(i, a, b) for(int i = (a); i LHi; i--) //从最高隔板到边缘的时间 lt += h, h = max(h, LHs[i-1]); for(in...
阅读全文
摘要:这道题我是从样例中看出思路了2 40 0 1 1看这组数据, 输出的是No, 为什么呢?因为两个1之间没有神龙喝水, 所以一定会有水灾。然后就启发了我,两次同一个湖的降水之间必须至少有一次神龙喝水, 否则就会有水灾。如果是第一个湖的话那么就看作在第0次有一次降水。所以...
阅读全文
摘要:这道题的构造法真的复杂……要推一堆公式……这道题写了几天了……还是没写出来……一开始简单的觉得先左右来回, 然后上下来回, 然后把剩下的执行完了好了, 然后就WA。然后换了个思路, 觉得是贪心, 觉得只要保证当前留下的最多就ok了, 然后又WA。这里不能每一步贪心, ...
阅读全文
摘要:知道是构造法但是想了挺久没有什么思路。然后去找博客竟然只有一篇!!https://blog.csdn.net/no_name233/article/details/51909300然后博客里面又说貌似UVa数据有问题过不了, 而他的代码我也懂, 就没有自己写一遍了。但...
阅读全文
摘要:这道题看了半天没看出什么规律, 然后看到别人的博客, 结论是当n为奇数且逆序数为奇数的时候无解, 否则有解。但是没有给出证明, 在网上也找到详细的证明……我也不知道是为什么……求逆序对有两种方法, 树状数组和归并排序, 当然这道题数据很小可以直接暴力, 我三种都写了。...
阅读全文
摘要:这道题参考了https://www.cnblogs.com/20143605--pcx/p/4889518.html这道题就是枚举矩形的宽, 然后从宽再来枚举高。具体是这样的, 先把所有点的高度已经0和最高点储存起来, 排个序。然后就可以枚举所有可能的矩形的宽, 然后...
阅读全文
摘要:这道题貌似可以用滑动窗口或者单调栈做, 但是我都没有用到。这道题要求连续子序列中和乘上最小值最大, 那么我们就可以求出每一个元素, 以它为最小值的的最大区间的值, 然后取max就ok了。那么怎么求呢?我可以初始化出一个第一个小于当前元素的的元素的位置, 也就是说初始化...
阅读全文
摘要:这道题说连续子序列, 马上就想到滑动窗口。注意窗口里面的元素中小于等于k的才是有效元素。记录窗口里面有效元素的个数, 满足了之后开始缩短窗口, 如果左端点不是有效元素或者即使窗口中存在这个元素的个数大于1, 即使删去还是满足窗口内有1到k这些元素的时候, 左端点就删去...
阅读全文
摘要:暴力n的四次方, 然而可以用中途相遇法的思想, 分左边两个数和右边两个数来判断, 最后合起来判断。一边是n平方logn, 合起来是n平方logn(枚举n平方, 二分logn)(1)两种比较方式是相反的, 所以第二次可以直接把数组倒过来做, 代码可以省很多。(2) 我们...
阅读全文
摘要:先排序, 然后每个线段先放右端点, 然后往下放, 如果不能放就整体往左移动, 当不能往左移动的时候就ans++开始下一个整块。判断能不能向左移动要用一个变量储存每个已经放了的区间中线段与左端点距离的最小值。#include#include#define REP(i, ...
阅读全文
摘要:参考了https://www.cnblogs.com/dwtfukgv/p/5645446.html(1)直接二分答案。说实话我没有想到, 一开始以为是贪心, 以某种策略能得到最优解。但是想了很久没想出来, 后来看了博客发现因为显然答案是单调的, 可以用二分来做。看到...
阅读全文
摘要:我看到数据范围只有500, 第一反应枚举所有的可能,然后求出每种可能的最小次数。但是不知道怎么求最小次数。我想的是尽量让一次交换可以让两个不在应该在的位置的数字到原来应该在的位置的数字, 这样可以消除两个差异, 否则就交换到该到的地方, 消除一个差异。但是怎么实现??...
阅读全文
摘要:本来以为这道题是考不相交区间, 结果还专门复习了一遍前面写的, 然后发现这道题的区间是不是固定的, 是在一个范围内“滑动的”, 只要右端点不超过截止时间就ok。然后我就先考虑有包含关系的时候怎么选, 然后发现当两个区间只能放一个的时候时间更短而截至时间更长的时候,显然...
阅读全文
摘要:这个点就是贪心策略中的区间选点问题。把右端点从大到小排序, 左端点从小到大排序。每次取区间右端点就可以了, 到不能覆盖的时候就ans++, 重新取点ps:这道题不考虑精度也可以过 要着重复习一下区间相关问题了, 包括前面没有例题的知识点的部分#inclu...
阅读全文
摘要:这道题我苦思冥想了一个小时, 想用背包来揍sum/2, 然后发现数据太大, 空间存不下。然后我最后还是去看了别人的博客, 发现竟然有个神奇的结论……幸好我没再钻研, 感觉这个结论我肯定是想不到的……结论是:在1 #include#define REP(i, a, b...
阅读全文
摘要:这道题一开始我没想什么直接开始染, 但是是for循环一个节点一个节点染, 然后就WA后了看了https://www.cnblogs.com/jerryRey/p/4702323.html发现原来还需要证明一下染色一定可以, 同时染色的方式是dfs(1)证明首先, 如果...
阅读全文
摘要:这道题我很快就写出来了, 但是一直WA, 然后发现是精度, 这坑了我一个小时……(1)贪心。每次就尽量分数高, 可以保证最后分数最高(2)神tm精度问题。记住判断大于小于和等于的时候要用EPS(1e-6)a == b fabs(a-b...
阅读全文
摘要:这道题的意思紫书上是错误的……难怪一开始我非常奇怪为什么第二个样例输出的是2, 按照紫书上的意思应该是22然后就不管了,先写, 然后就WA了。然后看了https://blog.csdn.net/wcr1996/article/details/43774331发现是题意...
阅读全文
摘要:这道题和例题8-1相当的像。例题8-1https://blog.csdn.net/qq_34416123/article/details/80112017一开始我还以为用归并的思想, 用交换把局部交换好, 然后再整体交换花了一个一小时好不容易写好之后, 发现我这种解法...
阅读全文

浙公网安备 33010602011771号