摘要: 一.单点修改,区间查询 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const ll N=5*1e5+2; 5 inline int read() 6 { 7 ll sm=0,flag=1; 8 阅读全文
posted @ 2021-11-19 20:40 yfmd 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 模运算必须是整数 (a + b) % p = (a % p + b % p) % p (1) (a - b) % p = (a % p - b % p) % p (2) (a * b) % p = (a % p * b % p) % p (3) a ^ b % p = ((a % p)^b) % p 阅读全文
posted @ 2021-11-19 20:24 yfmd 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 1 //弗洛伊德 floyd 2 void floyd()// n3 3 { 4 //想象为在拉面条,不断进行松弛操作 5 for(ll k=1;k<=n;++k)//k必须放在最外层 6 for(ll i=1;i<=n;++i)//枚举两端点 7 for(ll j=1;j<=n;++j) 8 g[ 阅读全文
posted @ 2021-11-19 19:44 yfmd 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 懒啊 引入老朋友博客 分块 - 云山千叠 - 博客园 (cnblogs.com) 分块 根号n 分块,又被称为优雅的暴力,在想不出更优解,可以考虑分块来解决 将大小为n的数列分为根号n块,如果不能恰好分为根号n块的话,多分一块就可以了 所以,我们要预处理出每一个元素所属的块 kuai[i] 和每一块 阅读全文
posted @ 2021-11-19 17:49 yfmd 阅读(113) 评论(0) 推荐(0) 编辑
摘要: P3379 【模板】最近公共祖先(LCA) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 倍增LCA 从两个点不断地向上跳,为了避免跳过和准确跳到,弹跳幅度逐渐减小,但要注意先使两个点的深度平齐,如此一块跳才能一块找到最近公共祖先 就如同两个实力相同的rabbits在比赛,为了比 阅读全文
posted @ 2021-11-19 17:17 yfmd 阅读(28) 评论(0) 推荐(0) 编辑
摘要: n的算法 通过1.弹出队首 2.压入队尾 3.弹出队尾 来保证区间内的单调性 P1886 滑动窗口 /【模板】单调队列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 1 #include<bits/stdc++.h> 2 using namespace std; 3 const 阅读全文
posted @ 2021-11-19 17:05 yfmd 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 思想是用指数的乘法性质,用二分思想执行操作 1 #include<bits/stdc++.h> 2 using namespace std; 3 int b,p,k,ans; 4 void power(int a,int n) 5 { 6 ans=1; 7 while(n) 8 { 9 if(n%2 阅读全文
posted @ 2021-11-19 16:56 yfmd 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 隆重介绍骗分黑科技 map 能水过不少题,且能极大缩短代码 A,B均为数据类型 map<A,B>a; A为a数组下标,B为a数组存储 水题(不一定AC,但可以获得极可观的分数) P3370 【模板】字符串哈希 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 正经想学哈希的不要偷懒哦 阅读全文
posted @ 2021-11-19 16:54 yfmd 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 根据贪心,在建树时优先选择长度小的边 通过并查集判断两个点是否已联通,如果已联通,则跳过,如果为联通,则连接 (因为是树,所以仅有一条路径) P3366 【模板】最小生成树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 1 #include<bits/stdc++.h> 2 us 阅读全文
posted @ 2021-11-19 16:34 yfmd 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 常用素数:1e8+7 1e8+37 19260817 线性筛 1 int prime[N]; 2 bool flag[N]; 3 void getprime() 4 { 5 flag[1]=1;//1不是素数 6 for(ll i=2;i<=n;++i)//n为素数的范围 7 { 8 if(flag 阅读全文
posted @ 2021-11-19 16:20 yfmd 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 一.快速排序 时间复杂度:平均 nlogn 最坏 n2 空间:n int a[N]; int cmp(int x,int y) { return x<y;//递增 或 return x>y;//递减 } sort(a+1,a+1+n,cmp); struct node { int a,b; }e[N 阅读全文
posted @ 2021-11-19 16:04 yfmd 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 并查集:通过将相应的元素归类到相应的集合内,以便之后的查询 在这里,我们可以从一个集合内选出一个代表,来表示相应的集合 初始处理 初始时每个元素的所属集合仅有元素本身,所以其所属集合的代表元素也仅能为它本身 1 int father[N]; 2 for(int i=1;i<=n;++i)father 阅读全文
posted @ 2021-11-19 15:35 yfmd 阅读(40) 评论(0) 推荐(0) 编辑
摘要: AK IOI (ak-ioi.com) 人生重开模拟器 Life Restart (24kdh.cn) WebGL Fluid Simulation (paveldogreat.github.io) 阅读全文
posted @ 2021-11-19 15:02 yfmd 阅读(145) 评论(0) 推荐(0) 编辑
摘要: Graph Editor (csacademy.com) 几何 - GeoGebra 阅读全文
posted @ 2021-11-19 15:01 yfmd 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 存储整形 1 priority_queue<数据类型>q //定义 2 如 priority_queue<int>q1 priority_queue<long long>q2 3 // 队列在排序时复杂度为logn 4 q.push(x) //将数 x 压入队列 5 q.top() //返回队首 6 阅读全文
posted @ 2021-11-19 14:55 yfmd 阅读(36) 评论(0) 推荐(0) 编辑