摘要: 质数 唯一分解定理 任意一个正整数都可以唯一地表示成若干个素数的乘积,其中素数因子从小到大依次出现(这里的“乘积”可以有0个、1个或多个素因子)。 埃氏筛 要得到自然数n以内的全部素数,必须把不大于根号n的所有素数的倍数剔除,剩下的就是素数。时间复杂度\(O(nlogn)\) a[1]=1; for 阅读全文
posted @ 2024-10-31 17:19 Zhone_lb 阅读(106) 评论(0) 推荐(0)
摘要: 拓扑序 1、在做DAG DP时,按拓扑序转移,状态可转移完全 2、从拓扑序小的点连向拓扑序大的点,一定不会成环 3、统计结点\(x\)可以到达的点数(待解决) Directing Edges 根据性质2,对有向边构成的图跑拓扑,拓扑序小的连向大的即可 正确性由性质2易知,待证明 P3953 [NOI 阅读全文
posted @ 2024-10-31 17:19 Zhone_lb 阅读(23) 评论(0) 推荐(0)
摘要: 1、小蜘蛛 题目描述 zty 一共养了 n 只小蜘蛛,第 i 只小蜘蛛有一个编号Ai ,这n 只小蜘蛛的编号恰好构成了一个长度为 n 的排列。小蜘蛛们在交友时总喜欢站成一排。他们的交友方式也很特别,每只小蜘蛛只会主动和在自己左方,且离自己最近的编号比自己小的小蜘蛛成为好朋友。若不存在,则不会主动结交 阅读全文
posted @ 2024-10-31 17:18 Zhone_lb 阅读(26) 评论(0) 推荐(0)
摘要: 函数 凹凸性 保凸运算 link 阅读全文
posted @ 2024-10-31 17:17 Zhone_lb 阅读(10) 评论(0) 推荐(0)
摘要: 1、sort函数排序区间左闭右开。 2、哈密顿回路为经过所有点的回路。 3、int上限约为21亿,long long约为\(1.8 \times 10^{20}\) 4、较小的元素尽量靠前的方案 = 最大字典序的翻转序列(贪心) 5、标准输入输出中 scanf:float用%f,double用%lf 阅读全文
posted @ 2024-10-31 17:16 Zhone_lb 阅读(31) 评论(0) 推荐(0)
摘要: 队列(queue) #include<queue> queue<int> q; q.push(x);//在队尾加入x q.pop();//队首元素出队 q.clear();//清空队列 q.empty();//判断队列是否为空 优先队列(priority_queue) #include<queue> 阅读全文
posted @ 2024-10-31 17:15 Zhone_lb 阅读(7) 评论(0) 推荐(0)
摘要: 队列 取出放入问题 给一个序列,将最小值x取出,再将f(x)放入 一般f(x)符合某些规律或性质,多开若干个序列维护即可 例1 [P2827] 蚯蚓 例2 [P6033] 合并果子 加强版 堆 例1 P1631序列合并 有两个长度都为n的序列A、B,在A和B中各选一个数相加可以得到n2个数。求这n2 阅读全文
posted @ 2024-10-31 17:14 Zhone_lb 阅读(39) 评论(0) 推荐(0)
摘要: 前缀和 背包问题 对于一个背包问题,有\(q\)个询问,求第\(i\)个物品一定不取时的最大价值。 思路: 1、当\(i=n\)时,只做1~i-1的背包即可; 2、当\(i=1\)时,考虑翻转背包,变成情况1; 3、一般情况下,考虑对每个点做前后缀背包,然后\(O(n)\)合并即可(合并方法类似廊桥 阅读全文
posted @ 2024-10-31 17:09 Zhone_lb 阅读(14) 评论(0) 推荐(0)
摘要: 线段树 常用于维护区间值 代码 和题解有很大差异,但是过了就好 void Pushup(int x) { s[x]=(s[x<<1]+s[x<<1|1]); } void Pushdown(int x,int l,int r) { s[x]=(s[x]+ad[x]*(r-l+1)); if(l!=r 阅读全文
posted @ 2024-10-31 17:07 Zhone_lb 阅读(48) 评论(0) 推荐(0)
摘要: CDQ分治 先分后治,先统计各区间的贡献,再统计前区间对后区间(后对前)的贡献 例题:逆序对$\ \ \ \ \ \ \ \ $ 平面最近点对 [P3810]【模板】三维偏序(陌上花开) 有 $ n $ 个元素,第 $ i $ 个元素有 $ a_i,b_i,c_i $ 三个属性,设 $ f(i) $ 阅读全文
posted @ 2024-10-31 17:03 Zhone_lb 阅读(10) 评论(0) 推荐(0)