带权二分 一种二分答案的套路,又叫做DP凸优化,wqs二分。 用来解决一类题目,要求某个要求出现K次,并且,可以很显然的发现,在改变相应权值的时候,对应出现的次数具有单调性。而且很显然,这种题一般满足一定的要求。而且一般权值为整数二分就可以,但是有的题需要实数二分...而且,边界条件通常很麻烦,调起 ...
分类:
其他好文 时间:
2018-11-28 22:23:31
阅读次数:
219
"嘟嘟嘟" 旋转卡壳模板题。 首先求出凸包。 然后$O(n ^ 2)$的算法很好想,但那就不叫旋转卡壳了。 考虑优化:直观的想是在枚举点的时候,对于第二层循环用二分或者三分优化,但实际上两点距离是不满足单调性的,见下图: 对于$A$点,$AB AE include include include i ...
分类:
其他好文 时间:
2018-11-21 16:18:09
阅读次数:
241
"LINK" 题目大意 给你一个序列分成k段 每一段的代价是满足$(a_i=a_j)$的无序数对$(i,j)$的个数 求最小的代价 思路 首先有一个暴力dp的思路是$dp_{i,k}=min(dp_{j,k}+calc(j+1,i))$ 然后看看怎么优化 证明一下这个DP的决策单调性: trz说可以 ...
分类:
其他好文 时间:
2018-11-05 20:52:54
阅读次数:
243
模拟赛的题目,做的时候由于第二题表打太久了,只剩下40分钟,想都没想就写了一个爆搜20分... 这道题单调性很关键,下面会解释 P.S.解释在代码里 ...
分类:
其他好文 时间:
2018-11-03 15:22:33
阅读次数:
206
主要参考 http://python.jobbole.com/85685/ 算法更新顺序 DFS : 存在多继承中无法重写问题 BFS:存在继承单调性问题 C3算法:算法像是 拓扑排序+优先最左 的方式 ...
分类:
编程语言 时间:
2018-11-02 17:59:34
阅读次数:
149
有一类关于区间最大值和最小值之类的问题,利用单调性,可以采用分治算法解决。 SPOJ22343 Norma 题意,给定一个数列,定义区间的代价为区间最大值、区间最小值、区间长度的成绩,求所有区间的代价和。 既然是分治,我们肯定要处理一个数列跨过中点的答案。 假设当前数列的中点为mid,我们从mid往 ...
分类:
其他好文 时间:
2018-10-31 10:37:43
阅读次数:
134
二分: "传送门" 三分: "传送门" (注意,是五舍六入,不是四舍五入,在2018年10月23日前是这样的) 话说一本通上不是有讲嘛,做法自己看吧。。。~~(但是我太弱了,精度版看不懂QWQ)。~~ 简单讲一下二分与三分吧。 二分:必须满足单调性: 非增或非减就叫单调性(如果就好几个数相同,一般会 ...
分类:
其他好文 时间:
2018-10-24 10:54:30
阅读次数:
228
题意 "题目链接" 给出一个序列,求出有多少区间满足$A[l] \oplus A[l+1] \oplus \dots \oplus A[r] = A[l] + A[l + 1] +\dots+ A[r]$ Sol 一个区间能满足要求一定是所有bit上最多只有一个1 这玩意儿显然有单调性,two po ...
分类:
其他好文 时间:
2018-10-18 10:48:23
阅读次数:
162
思路: 水题。。。 因为他挑选的规则一定,而删除的方式一定,所以,答案拥有单调性。 单调性:因为有一个最大合法点,在那之后都是合法的,所以再往后走的话,答案一定越来越小 所以我们的目的就是找这个最大合法点。 怎么找呢? 因为挑选方式一定,所以合法性可以O(n)验证。 这样的话,很显然就可以用一个东西 ...
分类:
其他好文 时间:
2018-10-18 01:19:22
阅读次数:
202
我们可以先算出来雪堆在哪一天融化完。因为每天都有融化的量,在该天前的雪堆如果没有融化完成的话还会融化,所以记录融化量的前缀和,序列就有了单调性。 有了单调递增的性质后,就可以用二分查找来降低这个复杂度了。(当然懒得打二分可以用lower_bound) 之后算出来在哪一天融化之后,就把该天到那一天的范 ...
分类:
编程语言 时间:
2018-10-14 13:46:59
阅读次数:
182