随笔分类 - 分治—二分
摘要:先从后到前做一个最长下降子序列的dp,记录f[i],我这里用的是二分(其实树状数组比较显然) 然后对于询问,超出最长上升子序列的直接输出;否则从前到后扫,f[i] =x&&a[i] la(上个选的)就选,因为这时第一个出现的一定是符合条件的中最小的最小的
阅读全文
摘要:我是zz吗这么简单都写错…… 一眼二分,然后判断的话是枚举点,然后计算这个点到已有联通块的最小距离,如果这个点到一些联通块的距离小于当前二分的val,则把这些联通块合并起来,这里用并查集维护,最后看这样得出的部落数是否大于k(多出来的可以直接合并) 有个非常小的优化就是不用double二分,直接把点
阅读全文
摘要:常数巨大,lg上开o2才能A 首先预处理出运输计划的长度len和lca,然后二分一个长度w,对于长度大于w的运输计划,在树上差分(d[u]+1,d[v]+1,d[lca] 2),然后dfs,找出所有覆盖所有边的边的边权最大值,然后用最长运输计划减去最大值看是否符合要求即可 upt:我怕不是个傻子……
阅读全文
摘要:对于第一问二分然后贪心判断即可 对于第二问,设f[i][j]为已经到j为止砍了i段,转移的话从$$ f[i][j]=\sigema f[k][j 1] (s[j] s[k 1] include using namespace std; const int N=50005,mod=10007; int
阅读全文
摘要:二分答案,然后dp判断是否合法 具体方法是设f[u]为u点到其子树中的最长链,每次把所有儿子的f值取出来排序,如果某两条能组合出大于mid的链就断掉f较大的一条 a是全局数组!!所以要先dfs完子树才能填a!!
阅读全文
摘要:写错一个符号多调一小时系列…… 二分答案,然后判断这个二分区间是否合法: 先按值 从大到小 排序,然后对于值相同的一些区间,如果没有交集则不合法;否则把并集在线段树上打上标记,然后值小于这个值的区间们,如果交集打过标记了,那么不合法,因为这个打过标记的区间一定不会有更小的值了,但是现在有一个更小的数
阅读全文
摘要:二分答案,贪心判定
阅读全文
摘要:二分答案,把边权小于mid的边的两端点都并起来,看最后是否只剩一个联通块
阅读全文
摘要:脑子一抽写了个堆,发现不对才想起来最值用二分 然后判断的时候贪心的把不合mid的区间打通,看打通次数是否小于等于m即可
阅读全文
摘要:忘开long long了居然没WA 二分答案,枚举判断看最后需要的月份数是否小于等于要求的即可
阅读全文
摘要:二分答案,然后把边权大于二分值的的边赋值为1,其他边赋值为0,然后跑spfa最短路看是否满足小于等于k条边在最短路上
阅读全文
摘要:参考:https://blog.csdn.net/herobrine_tkj/article/details/78404426?locationNum=8&fps=1 为什么从1开始存就挂了,这是个未解之谜... 把两个人条件转换为二维平面内的点,零件生产公司是左下角,零件消费公司是右上角,求最大矩
阅读全文
摘要:枚举从大到小s1,二分s2(越大越有可能符合),2 SAT判断,ans取min 思路倒是挺简单的,就是二分的时候出了比较诡异的问题,只能二分s2的值,不能在数组上二分... 有个优化,就是当不是二分图的时候退出枚举,这个用并查集染色维护 cpp include include include inc
阅读全文
摘要:数组若干+手动二分一个的算法,bzoj rank8 ===============================废话分割线=================================== 我我我我我!一定要说一下我的心路历程!我只用了几个数组和一个手动二分!在洛谷和bzoj都过了所以应该是对
阅读全文
摘要:~~其实并不会分数规划~~ 因为要最大化 ans=总收益/总路程 ,所以考虑二分答案,找到一条 ans=0。建一张新图,(i,j)边权为w(i,j) d(i,j)\ ans,然后用Floyd在新图中检查是否有非负环即可。
阅读全文

浙公网安备 33010602011771号