学习计划
卡常带师
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
学习计划----数位DP
题目链接:https://www.luogu.com.cn/problem/P2657解题思路:数位DP模板题,按位进行记忆优化搜索,详情见代码const int N = 15;int len;string L , R, v;ll dp[N][N][2][2];//cur表示当前位,x代表上一位填的什么//f表示从[0,cur-1]前缀是否和给定上界相同//g表示是否还在填充前导0ll dfs (int cur ,int x, bool f, bool g){ if (cu.原创 2021-05-13 22:23:43 · 319 阅读 · 1 评论 -
学习计划——整体二分
整体二分一般适用与可离线询问的问题,属于离线算法可以使用整体二分解决的题目需要满足以下性质:询问的答案具有可二分性修改对判定答案的贡献互相独立 ,修改之间互不影响效果修改如果对判定答案有贡献,则贡献为一确定的与判定标准无关的值贡献满足交换律,结合律,具有可加性题目允许使用离线算法经典问题:P3834,区间第k大//#define LOCAL#include <bits/stdc++.h>using namespace std;#de.原创 2020-10-09 13:24:33 · 486 阅读 · 0 评论 -
学习计划——根号分治
根号分治根号分治是一种思想,一般根据一个数(可以是数组的数,也可以是答案的数)分类,分为大于sqrt(n)sqrt(n)sqrt(n)的部分和小于等于sqrt(n)sqrt(n)sqrt(n)的部分题目链接: luogu.com.cn/problem/P3396解题思路: 根号分治的经典题目。我们根据模数分类,模数大于等于sqrt(n)sqrt(n)sqrt(n)的部分我们暴力求解,小于等于的部分我们提前预处理出来就好了const int N = 2e5 + 5;int n , m原创 2020-12-14 14:22:29 · 875 阅读 · 0 评论 -
CDQ分治——学习笔记
CDQ分治cdq分治的原理基于以下事实:对于每个“查询”操作,其结果ans[i]=[1,i−1]ans[i] = [1,i-1]ans[i]=[1,i−1]中所有修改对其造成影响的叠加(这里的“叠加”需要能够比较方便的维护,例如sum/min/maxsum/min/maxsum/min/max等)定义solve(l,r)solve(l,r)solve(l,r)为:对于第kkk个操作,k∈[l,r]k∈[l,r]k∈[l,r],若其为查询操作,则计算[l,k−1][l,k-1][l,k−1]中的修改原创 2020-11-24 16:04:16 · 224 阅读 · 0 评论 -
二维偏序/数点——学习笔记
二维偏序/数点对于可离线的二维偏序问题一般都是先定一维的顺序,然后利用树状数组维护求解应用一.题目链接:https://www.luogu.com.cn/problem/P2163解题思路:二维数点的经典模板题,离线询问之后利用二维前缀和方法用树状数组维护即可//#define LOCAL#include <bits/stdc++.h>using namespace std;#define ll long long#define mem(a, b) memset(原创 2020-11-23 19:36:51 · 1502 阅读 · 0 评论 -
点分治——学习笔记
点分治点分治基础框架(常用于树上路径问题)找1个合适的分治中心rt统计答案ans += solve(T,rt)对所有rt的子节点v,递归调用work(v)int work(u){//统计sub(u)中的合法路径 rt = find_rt();//找重心 ans = solve(rt); for v∈son[rt]: ans += work(v) return ans;}模板例题:一.题目链接: https://www.luo原创 2020-11-19 09:37:13 · 216 阅读 · 0 评论 -
01Trie——学习笔记
01Trie01Trie01Trie01Trie与字典树几乎一样,只不过边的权值只有0或101Trie常用来解决异或问题例题:一.题目链接:https://www.luogu.com.cn/problem/P4551解题思路:首先意识到异或的前缀性质假设:S3=A1xorA2xorA3S3 = A1xorA2xorA3S3=A1xorA2xorA3,S1=A1S1 = A1S1=A1, 那么 S2=S3xorS1S2 = S3xorS1S2=S3xorS1那么我们将这条性质用在树上,我原创 2020-11-16 16:09:48 · 349 阅读 · 0 评论 -
启发式树上主席树合并、克鲁斯卡尔重构树 学习笔记
题目链接:https://www.luogu.com.cn/problem/P3302启发式主席树合并基础题目,和启发式并查集方法保持一致,按秩合并即可,该主席树维护的是根节点到树上任意节点的内容,和 count on tree这个题目维护的内容一样,只是在这个题目的基础上加上了启发式合并//#define LOCAL#include <bits/stdc++.h>using namespace std;#define ll long long#define mem(a, b).原创 2020-11-12 15:19:32 · 308 阅读 · 0 评论
分享