模版
team79
我在努力。
展开
-
hdu 1686 KMP
AC代码如下: #include #include #include using namespace std; int n, m; char a[1000005]; char b[10005]; int p[10005]; void Pre(){ int i, j; j = -1; p[0] = -1; for( i = 1; i < m; i++ ){ while( j原创 2013-07-22 20:49:40 · 665 阅读 · 0 评论 -
foj 1977 Pandora adventure(插头DP)
哎。。。。。 都是泪。。。。。 这游戏太难了。。。。 再一次写了三天才AC。。。 生活为什么要这么艰难。。。。原创 2014-04-20 09:33:21 · 686 阅读 · 0 评论 -
hdu 4513 3068 Manacher算法--O(n)回文子串算法
以下下内容转自:点击打开链接转载 2014-08-24 15:04:12 · 795 阅读 · 0 评论 -
线性时间内筛素数和欧拉函数
学习了下线性时间筛素数和求欧拉函数 大部分类容转自点击打开链接原创 2014-08-25 16:08:44 · 934 阅读 · 0 评论 -
计算几何
点(x0,y0)绕(x1,y1)旋转弧度p后的坐标(x2,y2) x2 = x1 + ( x0 - x1 ) * cos(p) - ( y0 - y1 ) * sin( p ); y2 = y1 + ( x0 - x1 ) * sin(p) + ( y0 - y1 ) * cos( p );原创 2014-09-16 19:12:47 · 785 阅读 · 0 评论 -
并查集模版
int finds( int x ){ int r = x; while( r != ft[r] ){ r = ft[r]; } int j = x, t; while( j != r ){ t = ft[j]; ft[j] = r; j = t; } return r; }原创 2015-01-23 15:45:46 · 702 阅读 · 0 评论 -
无向图的割顶、桥和双联通分量
割顶和桥定理:在无向图G的DFS树种,非根节点u是G的割顶当且仅当u存在一个子节点v,使v及其所有后代都没有反向边连回u的祖先(u不算)。 当u的后代v,v的后代只能连回v自己(low(v)>pre(u)),那么边(u,v)就是桥双连通分量点双连通分量不同的双连通分量最多只有一个公共点(割顶)。 const int MAXN = 1e5;struct Edge{ int u, v; };in原创 2015-07-15 23:24:46 · 746 阅读 · 0 评论 -
HASH求两子串是否相等(O(N)预处理O(1)比较)
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <string> using namespace std;const int MAXN = 5010;const unsigned long long SEED = 13331; unsigned long long P[MAX原创 2017-08-06 17:53:18 · 489 阅读 · 0 评论 -
逆元板子
ans1[0] = 1; for(int i=1; i<N; i++) ans1[i] = ans1[i-1] * i % MOD; inv[1] = 1; for(int i=2;i<N;i++) { if(i >= MOD) break; inv[i] = (MOD - MOD / i) * inv[MOD % i] % MOD; }原创 2017-08-15 09:57:06 · 311 阅读 · 0 评论 -
后缀数组总结
后缀:字符 串 r 的 从 第 i 个 字 符 开 始 的 后 缀 表 示 为 Suffix(i) 后缀数组:后缀数组 SA 是一个一维数组,SA(i)表示排序后第i个后缀数组的起始位置为SA(i) 名次数组:名次数组 Rank[i]保存的是 Suffix(i)在所有后缀中从小到大排列的“名次”。 2倍增算法 待排序的字符串放在 r 数组中,从 r[0]到 r[n-1],长度为 n,且原创 2017-06-01 18:11:25 · 403 阅读 · 0 评论 -
poj 2409 polya定理
polya的模板题 今天开始刷数论。。。。 AC代码如下:原创 2014-07-25 09:17:09 · 611 阅读 · 0 评论 -
lightoj 1007 欧拉函数
公式推导转自: 点击打开链接原创 2014-06-10 15:45:43 · 753 阅读 · 0 评论 -
快速幂取模
long long DFS( long long base, long long exp, long long mod ){//快速幂取模 if( exp == 0 ){ return 1 % mod; } if( exp == 1 ){ return base % mod; } long long ans = DFS( base, exp / 2, mod ) % mod;原创 2013-10-26 14:47:40 · 994 阅读 · 0 评论 -
数位DP
常用数位DP写法: int dfs(int i, int s, bool e) { if(i==-1) return s==target_s; if(!e && ~f[i][s]) return f[i][s]; intres = 0; intu = e?num[i]:9; for(int d = first?1:0; d <= u; ++d)原创 2013-11-14 15:08:58 · 958 阅读 · 0 评论 -
大数模版
从别人的代码中copy来的。。。 大数代码如下: #include #include #include #include using namespace std; #define MAXN 9999 #define MAXSIZE 10 #define DLEN 4 class BigNum { private: int a[500]; //可以控制大数的位数 i原创 2013-10-24 15:23:11 · 681 阅读 · 0 评论 -
扩展欧几里得算法
当在求 ( a / b ) % MOD 时由于有分数不能直接求 要转化成 a % MOD * ( x % MOD + MOD ) % MOD x的求法如下: void EGCD( LL a, LL b, LL &x, LL &y ){ if( b == 0 ){ x = 1; y = 0; return; } EGCD( b, a % b, x, y ); LL t原创 2014-01-01 19:44:48 · 899 阅读 · 2 评论 -
poj 1738 DP(石子合并的GarsiaWachs算法)
详细报告,请点这里 AC代码如下: #include #include #include #include using namespace std; int num[51000], N, ans, m; void combine( int k ){ int temp = num[k] + num[k-1]; ans += temp; m--; for原创 2014-03-09 11:10:58 · 1104 阅读 · 0 评论 -
poj 1635 树的最小表示法
当模版了 点击打开链接 这个讲的不明不了 看的这个点击打开链接 AC代码如下: #include #include #include #include #include #include using namespace std; string x, a, b; string calc_min_tree( int pos ){ vector v; int原创 2014-03-07 19:52:56 · 878 阅读 · 0 评论 -
poj 1038 状态压缩dp
还在调试 #include #include #include #include using namespace std; int pow[11] = { 1, 3, 9, 27, 81, 243, 729, 2187, 6561, 19683, 59049 }; int maps[160][11]; int N, M, K; int dp[2][60000]; int nowstat原创 2014-03-10 16:15:39 · 1086 阅读 · 0 评论 -
hdu 2138 判断素数(Miller-Rabin算法)
太快了。。。。当模版了。。。。 AC代码如下: #include #include #include #include using namespace std; __int64 qpow(int a,int b,int r)//快速幂 { __int64 ans=1,buff=a; while(b) { if(b&1)ans=(ans*buff原创 2014-05-13 22:15:18 · 750 阅读 · 0 评论 -
树状数组小结
树状数组就两种情况,每次更新一个点,原创 2014-07-18 21:46:21 · 592 阅读 · 0 评论 -
树分治算法
树分治树分治有两种: 分治策略: POJ 1741#include <stdio.h> #include <string.h> #include <iostream> #include <algorithm> #include <vector> #include <queue> #include <set> #include <map> #include <string> #incl原创 2017-09-11 08:41:57 · 285 阅读 · 0 评论