ACM模板
文章平均质量分 59
ThunderSei
这个作者很懒,什么都没留下…
展开
-
KMP muban
#include #include using namespace std; string a,b; int p[10000]; int i,j,m,n; int main(){ cin>>a; cin>>b; n=a.length(); m=b.length(); p[0]=-1; j转载 2013-10-03 11:41:02 · 533 阅读 · 0 评论 -
国家队ACM论文分类整理(转载)
距离NOI时间越来越少了,选择性地看一些集训队论文是很有必要的。(在此给已经看过所有论文的神牛跪了= =)所以,我在此整理了一下,供大家参考。组合数学计数与统计2001 - 符文杰:《Pólya原理及其应用》2003 - 许智磊:《浅谈补集转化思想在统计问题中的应用》2007 - 周冬:《生成树的计数及其应用》2008转载 2013-11-13 22:15:55 · 2325 阅读 · 0 评论 -
lightoj 1168 tarjan 强联通分量加缩点 加各种题目坑
#include#include#include#include#includeusing namespace std;vector G[2000];vector C[2000];int dfn[2000];int low[2000];int cmp[2000];stack sta;bool instack[2000];bool used[2000];int top原创 2013-11-11 12:49:20 · 740 阅读 · 0 评论 -
lightoj 1003 强联通模板题
#include#include#include#include#include#include#includeusing namespace std;map mp;vector topo;vector G[12000];vector rG[12000];int cmp[20000];int num_kind=0;int used[20000];void dfs(原创 2013-11-10 21:34:33 · 732 阅读 · 0 评论 -
所以说,你是个会写2分的人么?
关于2分,实在是自己的痛处,上次区域赛热身的时候把2分写挂了,被黑了好几个月了= =,幸亏我有强大的心脏。。2分的用处不仅仅在于查找,还有很多用处,比如2分答案,查询满足条件的最大值,或者查询满足条件的最小值,又或者是平均值。我写的2分是这个样子的(取自 线段树和树状数组各过一次POJ2182)因为我要找的是满足空格数符合条件的最小的一个值,也就是找下界,所以选择更新一个左开右闭的原创 2013-11-06 11:14:27 · 613 阅读 · 0 评论 -
ACM竞赛中用到的取摸运算
话说对这个取摸运算还是很陌生的,唯一的接触是高二的时候去参加物理竞赛的培训,完了之后旁边数学竞赛的培训还没有结束,然后混进去听了一节数学竞赛的课。那节课就是有关于数论的。ACM中数字一大就经常模这个 10^9+7这个质数,但是什么时候可以模什么时候不可以取摸让我担惊受怕了很久。今天早上上OOAD的时候无聊突然就明白了。取摸的三个运算式子1 反身性 a≡a (mod m)原创 2013-11-04 15:04:35 · 881 阅读 · 0 评论 -
POJ3468 顺便贴个学姐的线段树版
#include#include#include#includeusing namespace std;#define LL long long#define MAXN 101010LL sum[MAXN<<2],add[MAXN<<2],a[MAXN<<2];void pushup(int rt){ sum[rt]=sum[rt<<1]+sum[rt<<1|1];}原创 2013-11-01 23:36:20 · 462 阅读 · 0 评论 -
常用定理
以下等式或者不等式均可以用数学归纳法予以证明!1 + 3 + 5 + ... + (2n - 1) = n^21*2 + 2*3 + 3*4 + ... + n*(n + 1) = n*(n + 1)*(n + 2) / 31*1! + 2*2! + 3*3! + ... + n*n! = (n + 1)! - 11^2 + 2^2 + 3^2 + ... + n^转载 2013-10-31 18:13:57 · 613 阅读 · 0 评论 -
Prim 模板
#include#include#include#include#include#includeusing namespace std;int used[5000];struct edge{ int to; int cost;}e[5000];vector G[5000];typedef pair P;priority_queue, greater > q原创 2013-10-23 22:07:59 · 409 阅读 · 0 评论 -
ACM 中常用小算法(慢慢更新)
1.优先队列和堆头文件priority_queue q;//从小到大取值取值q.top(); 去除第一个q.pop();priority_queue,greater> q;原创 2013-10-23 12:46:32 · 479 阅读 · 0 评论 -
Dijkstra算法模板
#include#include#include#include#includeusing namespace std;const int INF=0x3f3f3f3f;struct edge{ int to; int cost;}e[200002];typedef pair P;vector v[50001];int dist[5000];int ma原创 2013-10-23 14:05:25 · 401 阅读 · 0 评论 -
简单快速幂
数论结论a*b%c=(a%c*b)%c=(a%c*b%c)%c#include#includeint main(){ int n; scanf("%d",&n); int ans=1; int x=5; int mod=100000; while(n>0) { if(n&1) ans=ans*x%mod; x=x*x%mod; n>>=1; }原创 2013-10-25 20:56:38 · 437 阅读 · 0 评论 -
写并查集都能写挂两次
今天做了两道使用并查集的问题,我一开始都以为WA或者RE都不是并查集代码的问题,长时间差错之后才发现就是尼玛这么简单的并查集代码,再手写一个...错的两个地方标出来了,以后记住#include#includeint par[10000];void init(){ int i; for(i=0;i<10000;i++) par[i]=i;}int find(in原创 2013-10-25 19:52:23 · 389 阅读 · 0 评论 -
ACM 最大流 dinic 模板
最大流的应用实在是太广泛了几个比较有用的定理:最大流=最小割二分图最大匹配=二分图最小点覆盖(最大流)二分图的匹配直接用最大流好了。下面是个很喜欢的dinic模板,顺便用这个版过掉POJ3041#include using namespace std;const int maxn=150000;const int maxm=2000000;const int原创 2013-09-27 19:09:58 · 640 阅读 · 0 评论 -
状态压缩DP
怎么确定状态 微观状态 一般都是一堆0101010来表示某位置用或者不用 宏观状态 一般都是用数字来表示微观状态用了几个1 还有状态的阶段。 比如,要计算棋盘上放置K个国王令其不能互相攻击的问题 dp[i][j][s] 就表示第i行状态为S时前i-1行放了j个国王原创 2013-11-14 00:38:44 · 534 阅读 · 0 评论