上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 68 下一页
摘要: 对于这个dp转移方程,我们观察到的是每个点都从左上方转移或者上方转移。 如果从左上方转移,那么多了一个b[i],可见我们对于每一行在第几列,就能获得几个b[i],那么这其实就是求区间的前k大值和 这就是主席树模板题 #include<bits/stdc++.h> using namespace st 阅读全文
posted @ 2020-10-26 15:56 朝暮不思 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 套路题,对于步长大于根号n的,直接暴力做,对于步长小于根号n的,保留离线后 对于每个步长for一遍,这样复杂度也是n*根号n #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int 阅读全文
posted @ 2020-10-25 18:14 朝暮不思 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 这道题的原理是普通的二维差分和二维前缀和,但是因为不能开二维数组,因此映射到一维就行 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e7+10; const int mod=1e9+7; 阅读全文
posted @ 2020-10-24 16:01 朝暮不思 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 线段树题目,维护的信息非常对。 因为我们看到的是区间修改和区间查询,所以可以想到用线段树 现在的要求是往前后插数,求的是数的和。 因此我们可以考虑维护lazy标记往前插的数,往后插的数,和插的位数 并且还要维护答案sum1,以及区间的长度sum2,这是因为区间的长度是不定的,而我们维护区间和的时候, 阅读全文
posted @ 2020-10-24 12:49 朝暮不思 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 这题精妙的一点就是将通过把性质(最多一位是奇数)转化成前缀和异或和,之后任意两点之间的数量就是异或值。 这样我们把每条边的权值都当成1<<i即可。因为我们要对每个点计算答案,所以需要用树上启发式合并,也就是保留重儿子,遍历所有其他节点。 对于一个点的答案,他有三个来源,1是直接子树中的答案,2是以u 阅读全文
posted @ 2020-10-24 10:07 朝暮不思 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 一个经典套路是异或前缀和公式,因此我们可以枚举右端点,寻找异或值大于等于k的答案 做完后每次把前缀和放到trie树上面去。 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=1000005; 阅读全文
posted @ 2020-10-22 19:49 朝暮不思 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 题目要求的是分组后的组间最大值-最小值的最小是多少。 因为我们发现有两个变量,因此很难做,一种经典思路就是固定一个答案,然后求相对于这个答案的另一个值的最优解,枚举所有情况取min即可。 对于本题,我们发现所有的值其实已经明了,因此先预处理计算后,我们可以枚举最小值,之后找到满足条件的最小的最大值。 阅读全文
posted @ 2020-10-22 18:01 朝暮不思 阅读(179) 评论(0) 推荐(0) 编辑
摘要: C 分类讨论+思路 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e6+10; string s,t; int a[N]; vector<int> num; #define mp mak 阅读全文
posted @ 2020-10-21 22:55 朝暮不思 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 模拟退火模板,按比例接受 #include<bits/stdc++.h> using namespace std; const int N=1e5+10; const double eps=1e-8; double ans; double y; double cal(double x){return 阅读全文
posted @ 2020-10-20 23:27 朝暮不思 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 对于暴力dp来说,对于当前i位置分成j段的答案就是f[l][j-1]+val(l+1,i),对于所有符合条件的答案取一个max 我们发现暴力会t,并且是取max,想到用线段树维护前一次的dp,这样只要dpk次就能获得答案。 至于val,其实就是区间修改,对于每个点,他有贡献的区间就是离他相同最近的点 阅读全文
posted @ 2020-10-20 22:28 朝暮不思 阅读(102) 评论(0) 推荐(0) 编辑
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 68 下一页