摘要:
STL整理 vector #include<bits/stdc++.h> #define go(i,a,b) for(int i=a;i<b;i++) using namespace std; vector<int>b(10,1);//赋初值,10个元素全为1 int main() { cout<< 阅读全文
摘要:
数论总结 欧拉筛 数论总结 欧拉筛 核心思想:对于每个合数,都用其最小质因子筛去,故复杂度O(n) code: 关于这句话: 当prime[j]成为i的素因子时,那么i*prime[j]一定可以表现为一个更小的素因子和一个更大的合数的乘积,在后面一定会被筛去,因此这里直接关闭。 欧拉函数 欧拉函数 阅读全文
摘要:
组合数学 公式 组合数学 公式 (二项式定理) O(n)预处理,O(1)求组合数预处理阶乘fac数组。 O(n)预处理,O(1)求组合数预处理阶乘fac数组。 预处理fac数组,需取模,则需处理出ifac(阶乘逆元)。 code: 然后用套公式即可。 Lucas定理 Lucas定理 核心: Luca 阅读全文
摘要:
字符串算法总结 AC自动机(AC_automation) AC自动机(AC_automation) AC自动机处理的是多模式串的匹配问题。 前置知识:trie和kmp(虽然并不是真正的kmp算法) 组件:trie树,fail失配指针,e标记字符串结尾。 注意:fail记录的是相同后缀,前缀可以不同。 阅读全文
摘要:
数据结构总结 堆(优先队列) 堆(优先队列) 黑匣子 开一个大根堆,一个小根堆,保证大根堆的元素个数为查询的i-1,输出小根堆的堆顶即可。如果插入的数a[j]比大根堆堆顶小,则把大根堆堆顶放到小根堆,a[j]放到大根堆里,保证大根堆里的最大值小于小根堆里的最小值。查询时把小根堆的堆顶放到大根堆里,使 阅读全文
摘要:
离线算法——CDQ分治 CDQ (SHY)显然是一个人的名字,陈丹琪(MM)(NOI2008金牌女选手)。 从归并开始(这里并没有从逆序对开始,是想直接引入分治思想,而不是引入处理对象) 从归并开始(这里并没有从逆序对开始,是想直接引入分治思想,而不是引入处理对象) 一个很简单的归并排序:一个乱序的 阅读全文