Processing math: 100%

随笔分类 -  分治&倍增

摘要:差分+二分 题意大概是对于一个序列,每次可以给某个长度为W的序列+1,可以操作m次。问序列最小值的最大值是多少。 差分一下,每次二分到一个最小值的最大值就开始遍历整个数组,发现假如第i个数小于mid,就令ii+m1上的值加到mid cpp include includ 阅读全文
posted @ 2018-10-21 21:52 SWHsz 阅读(155) 评论(0) 推荐(0) 编辑
摘要:yyl说是用链表O(n)做 但是并脑补不出来。 发现可以用个vector记录一下每个数出现的位置,然后对于每个新序列就二分一下,找下一个数出现的离当前位置最近的位置,更新一下当前位置即可。 时间复杂度O(∑ k log k)的,不用卡常也过了。。 #include <iostream> #inclu 阅读全文
posted @ 2018-10-18 08:59 SWHsz 阅读(160) 评论(0) 推荐(0) 编辑
摘要:二分答案的大水题。二分一下W,然后记录一下前缀满足wi≤W的个数,前缀满足这个条件的vi的和,check的时候直接O(n+m)的check就行了。 记得开long long #include <iostream> #include <cmath> #include <cstdio> #include 阅读全文
posted @ 2018-10-11 09:12 SWHsz 阅读(216) 评论(0) 推荐(0) 编辑
摘要:大意:给你一个平面上N(N<=100000)个点,问相切于x轴的圆,将所有的点都覆盖的最小半径是多少。 计算几何???Div2的D题就考计算几何???某人昨天上课才和我们说这种计算几何题看见就溜。。。。 打完比赛才发现好像并不用计算几何,实则是一个二分答案的水题。。 发现如果点在x轴两侧就肯定不行, 阅读全文
posted @ 2018-10-06 20:28 SWHsz 阅读(340) 评论(0) 推荐(0) 编辑
摘要:二分答案。二分n,然后check的时候发现分类讨论一下当前值与K的关系就行了。 论认真读题的重要性。我没看见直接新建一个文件,弃置之前??? 难受 #include <iostream> #include <cstdio> #include <cstring> using namespace std 阅读全文
posted @ 2018-10-02 16:13 SWHsz 阅读(136) 评论(0) 推荐(0) 编辑
摘要:WA的一声哭出来了。。。 显然是二分时间,显然是越靠近首都,军队的作用越大。 有几个细节 第一是军队向上跳的时候用倍增。 第二是如果这个军队有能力跳到根节点,记录一下它能继续走的路,然后用它去搞别的子树。 判断是否可行的时候把不能被覆盖的子树记下来,用之前记录下来跳过首都的去尝试能不能覆盖到该子树的 阅读全文
posted @ 2018-09-21 16:17 SWHsz 阅读(186) 评论(0) 推荐(0) 编辑
摘要:T1 打表出奇迹,发现结论为E(an)=n+1即可。 T2 正解应该是kmp,求出来nxt数组为偶数的就行了。但是蒟蒻了一下,并且受到200000的数据范围引导,写了个nlogn的做法,对于每个位置能延伸出去的长度,二分一下,check一下hash即可,荣幸成为全场除了写SA的老哥以外跑的最慢 阅读全文
posted @ 2018-08-12 20:54 SWHsz 阅读(111) 评论(0) 推荐(0) 编辑
摘要:T1 叕出锅了。。。 大意:求一个最小的数的阶乘是给定的n个数的乘积的倍数。 二分边界定小,WA了两个点。二分边界不要省啊。。。多不了多少时间。。。 cpp include include include using namespace std; const int N=100005; int n, 阅读全文
posted @ 2018-08-10 20:06 SWHsz 阅读(135) 评论(0) 推荐(0) 编辑
摘要:树剖学的好啊。。。 先预处理出来每个询问的距离,然后二分答案,check的时候树上差分一下,求出来大于mid的询问的最长公共边,减去以后判一下行不行。 阅读全文
posted @ 2018-07-25 00:05 SWHsz 阅读(118) 评论(0) 推荐(0) 编辑
摘要:盲人oi,the best oi T1: DP+贪心 贪心地让以i为结尾的序列的最后一段最小,直接转移。 cpp include const int N=200005; long long n,h[N],f[N],sum[N],las[N]; int main(){ freopen("tower.i 阅读全文
posted @ 2018-07-19 16:17 SWHsz 阅读(99) 评论(0) 推荐(0) 编辑
摘要:前置: nlogn逆序对: 前一个小时我还真的不会这个Orz 这里运用归并排序的思想。 对于一个序列,我们把它先分开,再合并成一个有序序列。 引自https://blog.csdn.net/qq_30189255/article/details/50937307 假设f(i,j)为i到j号元素中的逆 阅读全文
posted @ 2018-07-08 21:28 SWHsz 阅读(365) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示