上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 68 下一页
摘要: 这题其实求的是x的倍数个数是否大于1,大于1肯定不行,否则可以 另外一点,如果区间gcd不能整除x,那么必有至少一个数不是x的倍数,不然gcd会更大 因此我们只要暴力维护并且在发现不止一个的时候及时退出,这样复杂度就可以 #include<bits/stdc++.h> using namespace 阅读全文
posted @ 2020-12-07 16:13 朝暮不思 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 这题比较套路,首先我们发现,区间变成约数个数是不可能用区间维护的,因此这题显然有个trick 既然只能暴力修改单点,但是我们又要要求修改次数不能太多,因此可以联想到,是不是我约数个数求几次就变成一个常数了 继续观察,果然是这样,因此我们发现修改次数不会太多 #include<bits/stdc++. 阅读全文
posted @ 2020-12-07 14:48 朝暮不思 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 初一看,sb题,上去一个并查集,很快啊,返回一个MLE,定睛一看,系统开的内存很小,但是这个算法复杂度又是这么正确 因此考虑优化内存,这样用滚动数组优化即可 这里注意一个问题,平常并查集从那边指那边都是对的,但是滚动数组就不一样了,对于上一层的,一定要指向下一层,因为如果指向上一层,那么在做的时候, 阅读全文
posted @ 2020-12-06 20:01 朝暮不思 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 数据范围不大,但是直接dfs显然复杂度不正确,因此只能使用状压 用位运算表示前i位的数更新即可 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> pll; const in 阅读全文
posted @ 2020-12-06 16:50 朝暮不思 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 首先观察到答案具有单调性 其次,考虑如何check,一个朴素的想法就是枚举区间,之后判断覆盖这段区间的plan有几个,再取个min 这样做复杂度较高,考虑一下优化。 我们可以枚举右端点,之后把符合条件的左端点用树状数组维护,之后用一个指针去不断往前找到最远的符合覆盖大于二分值的点。 注意,这个指针不 阅读全文
posted @ 2020-12-06 15:44 朝暮不思 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 这道题刚开始想到贪心去了,首先所有点都要取到,其次觉得一个点肯定是要跟最大的旁边点相连 但是这里有个问题,就是总是有一个点是原点,也就是这样直接贪心会存在环的情况,这种情况是不允许的,这意味着存在一个点即是出发点也是被遍历点 那么既要消除环的情况,又要连接所有的点,并且要求权值最大,基本上可以想到树 阅读全文
posted @ 2020-12-04 11:13 朝暮不思 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 求最大值最小,这种题目一般来说就是先猜一个二分 那我们发现,本题确实具有单调性,只要check出来能够小于等于k即可,因为这样一定能划分成k种 有人担心会不会二分的答案不能划分成k种,其实不可能,因为能划分成比k小的,就一定能划分成k种 之后就是dfs,用优先队列,如果一棵子树大了,就把他子树中的贪 阅读全文
posted @ 2020-12-04 09:08 朝暮不思 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 如果枚举三维会超时,但是暴力做法却很有道理,根据数据范围,容易看出这是个n^2的题目,并且第三个点是一个区间中的答案 因此考虑用st表查询区间最值优化 #include<bits/stdc++.h> using namespace std; const int N=1e5+10; struct no 阅读全文
posted @ 2020-12-03 20:23 朝暮不思 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 这道题明显就是告诉你就是树链剖分+线段树维护三次方和,那么显然就是拆项后发现维护一次方和,二次方和和三次方和 这里涉及到两个操作,一个是add一个是mul 因此我们要考虑优先级,这是洛谷的线段树模板2,要先mul再add,因为这样可以解决先加后乘的问题 #include<bits/stdc++.h> 阅读全文
posted @ 2020-12-02 21:47 朝暮不思 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 要求每个节点的答案,启发式合并没跑了,但是注意不要每次都遍历set 只需要计算贡献即可,因为插入的只有头部尾部和中间三种情况 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int 阅读全文
posted @ 2020-12-01 18:50 朝暮不思 阅读(91) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 68 下一页