07 2012 档案
【总结】Dancing Links
摘要:1、精确覆盖。View Code 1 #include<cstdio> 2 #define INF 0x7FFFFFFF 3 #define MAXN 1000010 4 int n, m, size; 5 int L[MAXN], R[MAXN], U[MAXN], D[MAXN], H[MAXN]; 6 int S[MAXN], C[MAXN], X[MAXN], Q[MAXN]; 7 void Init() 8 { 9 int i;10 for (i = 0; i <= m; i++)11 {12 S[i] = 0;13 L[i ...
阅读全文
【HDU】4210 Su-domino-ku
摘要:1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #define MAXN 300000 5 #define MAXL 1010 6 #define MAXM 10 7 #define INF 0x7FFFFFFF 8 using namespace std; 9 int L[MAXN], R[MAXN], U[MAXN], D[MAXN]; 10 int S[MAXL], H[MAXL], C[MAXN], X[MAXN], Q[MAXL]; 11 bool vis[MAXM][M
阅读全文
【HDU】3957 Street Fighter
摘要:1 #include<cstdio> 2 #include<cstring> 3 #define MAXM 110 4 #define MAXN 100000 5 #define INF 0x7FFFFFFF 6 bool G[MAXM][MAXM]; 7 int L[MAXN], R[MAXN], U[MAXN], D[MAXN]; 8 int S[MAXN], X[MAXN], C[MAXN], H[MAXN]; 9 int size, depth; 10 bool vis[MAXM], has[MAXM]; 11 void Init(int m) { 12 i..
阅读全文
【UVa】387 A Puzzling Problem
摘要:1 #include<cstdio> 2 #include<cstring> 3 #define MAXM 10 4 #define MAXN 100000 5 #define MAXL 110 6 #define INF 0x7FFFFFFF 7 struct node { 8 int h, l; 9 char s[MAXM][MAXM]; 10 }; 11 struct answer { 12 int pos, h, l; 13 }; 14 answer ans[MAXL]; 15 node sq[MAXM]; 16 bool vis[MAXL]...
阅读全文
【HDU】3156 Repair Depots
摘要:1 #include<cstdio> 2 #include<cstring> 3 #include<cmath> 4 #define MAXM 20 5 #define MAXN 10000 6 #define EPS 1e-8 7 #define INF 0x7FFFFFFF 8 int L[MAXN], R[MAXN], U[MAXN], D[MAXN]; 9 int S[MAXN], H[MAXN], C[MAXN], B[MAXN]; 10 double dis[MAXM][MAXM]; 11 bool vis[MAXM]; 12 struct Po
阅读全文
【HDU】3656 Fire station
摘要:1 #include<cstdio> 2 #include<cmath> 3 #include<cstring> 4 #include<algorithm> 5 #define MAXN 5000 6 #define MAXM 60 7 #define INF 0x7FFFFFFF 8 using namespace std; 9 int n, m, size; 10 int L[MAXN], R[MAXN], U[MAXN], D[MAXN]; 11 int H[MAXM], S[MAXM], C[MAXN], a[MAXN]; 12 int
阅读全文
【HDU】2295 Radar
摘要:1 #include<cstdio> 2 #include<cstring> 3 #include<cmath> 4 #include<algorithm> 5 #define MAXM 110 6 #define MAXN 50000 7 #define EPS 1e-8 8 #define INF 0x7FFFFFFF 9 using namespace std; 10 int n, m, k, size; 11 int L[MAXN], R[MAXN], U[MAXN], D[MAXN], C[MAXN]; 12 int H[MAXN],
阅读全文
【SPOJ】1771 Yet Another N-Queen Problem
摘要:1 #include<cstdio> 2 #include<cstring> 3 #define MAXN 1000000 4 #define MAXM 3000 5 #define INF 0x7FFFFFFF 6 int L[MAXN], R[MAXN], U[MAXN], D[MAXN]; 7 int H[MAXM], S[MAXM], C[MAXN], X[MAXN], Y[MAXN], Q[MAXM], ans[MAXM], pos[MAXM]; 8 int n, size; 9 bool vis[MAXM]; 10 void Init(int m) { 11
阅读全文
【HDU】3335 Divisibility
摘要:1 #include<cstdio> 2 #include<algorithm> 3 #define MAXM 1010 4 #define MAXN 1000000 5 #define INF 0x7FFFFFFF 6 typedef long long LL; 7 using namespace std; 8 LL a[MAXM]; 9 int size, ans;10 int L[MAXN], R[MAXN], U[MAXN], D[MAXN];11 int H[MAXN], C[MAXN], S[MAXN];12 void Init(int n) {13 int
阅读全文
【HDU】3529 Bomberman - Just Search!
摘要:1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #define MAXM 20 5 #define MAXN 60000 6 #define MAXL 300 7 #define INF 0x7FFFFFFF 8 using namespace std; 9 char s[MAXM][MAXM]; 10 int L[MAXN], R[MAXN], U[MAXN], D[MAXN]; 11 int H[MAXL], S[MAXL], C[MAXN]; 12 int pos[MAXM]
阅读全文
【HDU】2828 Lamp
摘要:1 #include<cstdio> 2 #include<cstring> 3 #define MAXN 500010 4 #define MAXM 1010 5 #define INF 0x7FFFFFFF 6 int L[MAXN], R[MAXN], U[MAXN], D[MAXN]; 7 int H[MAXM], C[MAXN], S[MAXM], X[MAXN]; 8 bool vis[MAXM]; 9 int size; 10 void Init(int n) 11 { 12 int i; 13 memset(vis, false, sizeo...
阅读全文
【HDU】2119 Matrix
摘要:1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #define MAXN 110 5 #define MAXM 1000000 6 #define INF 0x7FFFFFFF 7 using namespace std; 8 int G[MAXN][MAXN]; 9 int L[MAXM], R[MAXM], U[MAXM], D[MAXM]; 10 int size, ans, S[MAXM], H[MAXM], C[MAXM]; 11 bool vis[MAXN * 100]
阅读全文
【HDU】3498 whosyourdaddy
摘要:1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #define MAXN 10000 5 #define MAXM 60 6 #define INF 0x7FFFFFFF 7 using namespace std; 8 bool G[MAXM][MAXM]; 9 int R[MAXN], L[MAXN], U[MAXN], D[MAXN]; 10 int size, ans, C[MAXN], S[MAXN], H[MAXN]; 11 bool vis[MAXM]; 12 voi
阅读全文
【FOJ】2076 SUDOKU
摘要:1 #include<cstdio> 2 #include<cstring> 3 #include<set> 4 #define MAXN 9 5 #define MAXM 500000 6 #define INF 0x7FFFFFFF 7 using namespace std; 8 char sd[MAXN][MAXN]; 9 int L[MAXM], R[MAXM], U[MAXM], D[MAXM]; 10 int H[MAXM], S[MAXM], C[MAXM], pos[MAXN << 3][MAXN << 3]; 11
阅读全文
【HDU】3663 Power Stations
摘要:1 #include<cstdio> 2 #include<cstring> 3 #define MAXN 400000 4 #define MAXM 70 5 #define INF 0x7FFFFFFF 6 bool G[MAXM][MAXM], vis[MAXM << 5]; 7 int L[MAXN], R[MAXN], U[MAXN], D[MAXN]; 8 int S[MAXN], C[MAXN], X[MAXN], H[MAXN]; 9 int n, m, d, size, row[MAXM][10][10]; 10 void Init(int
阅读全文
【HDU】4069 Squiggly Sudoku
摘要:1 #include<cstdio> 2 #include<cstring> 3 #define MAXN 9 4 #define MAXH 800 5 #define MAXL 324 6 #define MAXM 240000 7 #define INF 0x7FFFFFFF 8 int size, cnt, a[MAXN][MAXN], sd[MAXN][MAXN], belong[MAXN][MAXN]; 9 int L[MAXM], R[MAXM], U[MAXM], D[MAXM], C[MAXM], X[MAXM]; 10 int S[MAXH], H[M
阅读全文
【HDU】3909 Sudoku
摘要:1 #include<cstdio> 2 #include<cstring> 3 #define SD 16 4 #define MAXN 2400000 5 #define MAXM 4100 6 #define INF 0x7FFFFFFF 7 char sd[SD][SD]; 8 int L[MAXN], R[MAXN], U[MAXN], D[MAXN], C[MAXN], X[MAXN]; 9 int size, cnt, row, S[MAXM], H[MAXM], Q[MAXM], ans[MAXM]; 10 bool vis[MAXM]; 11 void
阅读全文
【HDU】3111 Sudoku
摘要:1 #include<cstdio> 2 #include<cstring> 3 #define MAXM 10 4 #define MAXL 324 5 #define MAXN 240000 6 #define INF 0x7FFFFFFF 7 char sd[MAXM][MAXM]; 8 int L[MAXN], R[MAXN], U[MAXN], D[MAXN], H[MAXN]; 9 int size, C[MAXN], S[MAXN], X[MAXN], Q[MAXN], vis[MAXL * 3]; 10 void Read() 11 { 12 int..
阅读全文
【HDU】2780 Su-Su-Sudoku
摘要:1 #include<cstdio> 2 #include<cstring> 3 #define MAXM 10 4 #define MAXL 324 5 #define MAXN 240000 6 #define INF 0x7FFFFFFF 7 char sd[MAXM][MAXM]; 8 int L[MAXN], R[MAXN], U[MAXN], D[MAXN], H[MAXN]; 9 int size, C[MAXN], S[MAXN], X[MAXN], Q[MAXN], vis[MAXL * 3]; 10 void Read() 11 { 12 int..
阅读全文
【POJ】2676 Sudoku
摘要:1 #include<cstdio> 2 #include<cstring> 3 #define MAXM 10 4 #define MAXL 324 5 #define MAXN 240000 6 #define INF 0x7FFFFFFF 7 char sd[MAXM][MAXM]; 8 int L[MAXN], R[MAXN], U[MAXN], D[MAXN], H[MAXN]; 9 int size, C[MAXN], S[MAXN], X[MAXN], Q[MAXN], vis[MAXL * 3]; 10 void Read() 11 { 12 int..
阅读全文
【POJ】3076 Sudoku
摘要:1 #include<cstdio> 2 #include<cstring> 3 #define INF 0x7FFFFFFF 4 #define MAXS 16 5 #define MAXH 4100 6 #define MAXL 1025 7 #define MAXN 4200000 8 char sd[MAXS][MAXS]; 9 int L[MAXN], R[MAXN], U[MAXN], D[MAXN], C[MAXN], X[MAXN]; 10 int size, S[MAXL], H[MAXH], Q[MAXH]; 11 bool vis[MAXH]; 1
阅读全文
【POJ】3074 Sudoku
摘要:1 #include<cstdio> 2 #include<cstring> 3 #define MAXM 10 4 #define MAXL 324 5 #define MAXN 240000 6 #define INF 0x7FFFFFFF 7 char sd[MAXM][MAXM]; 8 int L[MAXN], R[MAXN], U[MAXN], D[MAXN], H[MAXN]; 9 int size, C[MAXN], S[MAXN], X[MAXN], Q[MAXN], vis[MAXL * 3]; 10 bool Read() 11 { 12 int..
阅读全文
【ZOJ】3209 Treasure Map
摘要:1 #include<cstdio> 2 #include<algorithm> 3 #define INF 0x7FFFFFFF 4 #define MAXN 450010 5 using namespace std; 6 int L[MAXN], R[MAXN], U[MAXN], D[MAXN], H[MAXN]; 7 int n, m, p, size, ans, C[MAXN], S[MAXN]; 8 void Init() { 9 int i; 10 n *= m; 11 for (i = 0; i <= n; i++) { 12 ...
阅读全文
【POJ】3740 Easy Finding
摘要:1 #include<cstdio> 2 #define INF 0x7FFFFFFF 3 #define MAXN 90010 4 int n, m, size; 5 int L[MAXN], R[MAXN], U[MAXN], D[MAXN], H[MAXN]; 6 int C[MAXN], S[MAXN]; 7 void Init() { 8 int i; 9 for (i = 0; i <= m; i++) { 10 S[i] = 0; 11 L[i + 1] = i; 12 R[i] = i + 1;...
阅读全文
【HUST】1017 Exact cover
摘要:1 #include<cstdio> 2 #define INF 0x7FFFFFFF 3 #define MAXN 1000010 4 int n, m, size; 5 int L[MAXN], R[MAXN], U[MAXN], D[MAXN], H[MAXN]; 6 int S[MAXN], C[MAXN], X[MAXN], Q[MAXN]; 7 void Init() { 8 int i; 9 for (i = 0; i <= m; i++) { 10 S[i] = 0; 11 L[i + 1] = i; 12 ...
阅读全文
【POJ】3494 Largest Submatrix of All 1’s
摘要:1 #include<cstdio> 2 #include<algorithm> 3 #define MAXN 2010 4 using namespace std; 5 int a[MAXN][MAXN]; 6 struct node 7 { 8 int w,h; 9 }st[MAXN];10 int main()11 {12 node temp;13 int n,m,i,j,ans,top,wide;14 while(~scanf("%d%d",&n,&m))15 {16 for(i=0;i<n;i++)17 {18...
阅读全文
【POJ】3250 Bad Hair Day
摘要:1 #include<cstdio> 2 typedef __int64 LL; 3 #define MAXN 80010 4 int st[MAXN]; 5 int main() 6 { 7 LL ans; 8 int n,i,x,top; 9 while(~scanf("%d",&n))10 {11 for(top=-1,ans=i=0;i<n;i++)12 {13 scanf("%d",&x);14 for(;top>-1&&st[top]<=x;top--);15 ...
阅读全文
【POJ】2796 Feel Good
摘要:1 #include<cstdio> 2 #define MAXN 100010 3 typedef __int64 LL; 4 struct node 5 { 6 LL w,h; 7 int x,y; 8 }; 9 node st[MAXN];10 int main()11 {12 node temp;13 LL ans,wide;14 int n,i,top,x,y,R;15 while(~scanf("%d",&n))16 {17 ans=top=-1;18 for(i=0;i<n;i++)19 ...
阅读全文
【SPOJ】11578 A Famous City
摘要:1 #include<cstdio> 2 #define MAXN 100010 3 int st[MAXN]; 4 int main() 5 { 6 bool flag; 7 int n,i,x,top,ans,ca=1; 8 while(~scanf("%d",&n)) 9 {10 for(top=-1,ans=i=0;i<n;i++)11 {12 flag=true;13 scanf("%d",&x);14 for(;top>-1&&st[top]>=...
阅读全文
【POJ】2559 Largest Rectangle in a Histogram
摘要:1 #include<cstdio> 2 #include<algorithm> 3 typedef __int64 LL; 4 #define MAXN 100010 5 using namespace std; 6 struct node 7 { 8 LL w,h; 9 };10 node st[MAXN];11 int main()12 {13 LL ans,wide;14 node temp;15 int n,i,top;16 while(scanf("%d",&n),n)17 {18 for(top=-1,ans=i=...
阅读全文
【POJ】2082 Terrible Sets
摘要:1 #include<cstdio> 2 #include<algorithm> 3 #define MAXN 50010 4 using namespace std; 5 struct node 6 { 7 int w,h; 8 }st[MAXN]; 9 int main()10 {11 node temp;12 int i,j,n,ans,top,wide;13 while(scanf("%d",&n),n!=-1)14 {15 top=-1;16 for(ans=i=0;i<n;i++)17 {18...
阅读全文
【HDU】3474 Necklace
摘要:1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 #define MAXN 2000010 5 char s[MAXN]; 6 int n,len,q[MAXN],sum[MAXN]; 7 bool ok[2][MAXN]; 8 void Read() 9 {10 int i;11 scanf(" %s",s+1);12 len=strlen(s+1);13 for(i=1;i<=len;i++)14 s[i+len]=s[i];15 n=len<<1
阅读全文
【HDU】3415 Max Sum of Max-K-sub-sequence
摘要:1 #include<cstdio> 2 #define INF 123456789 3 #define MAXN 200010 4 int a[MAXN],q[MAXN]; 5 int main() 6 { 7 int c,n,m,k,i,j; 8 int front,rear; 9 int ans,st,en;10 scanf("%d",&c);11 while(c--)12 {13 ans=-INF;14 front=0;15 rear=-1;16 scanf("%d%d",...
阅读全文
【POJ】2823 Sliding Window
摘要:1 #include<cstdio> 2 #define MAXN 1000010 3 int a[MAXN],q[MAXN]; 4 int main() 5 { 6 int n,k,i,j,front,rear; 7 while(~scanf("%d%d",&n,&k)) 8 { 9 for(i=1;i<=n;i++)10 scanf("%d",&a[i]);11 front=0;12 rear=-1;13 for(i=1;i<=k;i++)14 {15 ...
阅读全文
【FOJ】1894 志愿者选拔
摘要:1 #include<cstdio> 2 #include<cstring> 3 #define MAXM 9 4 #define MAXN 1000010 5 int q[MAXN],rp[MAXN]; 6 int main() 7 { 8 int c,front,rear,size,now; 9 char s[MAXM];10 scanf("%d",&c);11 while(c--)12 {13 scanf(" %s",s);14 front=now=0;15 rear=size=-1;16 ...
阅读全文
【POJ】3017 Cut the Sequence
摘要:1 #include<cstdio> 2 #define MAXN 100010 3 #define MIN(a,b) ((a)<(b)?(a):(b)) 4 typedef __int64 LL; 5 LL limit,a[MAXN],dp[MAXN]; 6 int n,Q[MAXN]; 7 LL DoIt() 8 { 9 LL sum;10 int i,j,k,front,rear;11 for(i=1;i<=n;i++)12 {13 if(a[i]>limit)14 return -1;15 }16 ...
阅读全文
【POJ】1038 Bugs Integrated, Inc.
摘要:1 #include<cstdio> 2 #include<cstring> 3 #include<vector> 4 #include<algorithm> 5 #define MAXN 160 6 #define MAXM 20 7 #define MAXL 280 8 using namespace std; 9 int n,m; 10 bool land[MAXN][MAXM]; 11 int put[MAXL][MAXM],cnt[MAXL],tmp[MAXM],size; 12 vector<int>G[MAXL]; 13
阅读全文
【POJ】1185 炮兵阵地
摘要:1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 #define MAXN 110 6 #define MAXM 66 7 char s[MAXN][MAXM]; 8 int n,m,size; 9 int dp[MAXN][MAXM][MAXM]; 10 int h[MAXN],a[MAXN],cnt[MAXN]; 11 inline bool OK(int x) 12 { 13 if(x&(x<<1)) 14 re
阅读全文
【HDU】1400 Mondriaan's Dream
摘要:1 #include<cstdio> 2 #include<cstring> 3 #include<vector> 4 #include<algorithm> 5 typedef __int64 LL; 6 using namespace std; 7 #define MAXN 1<<11 8 #define MAXM 15 9 int n,m;10 vector<int>G[MAXN];11 LL dp[MAXM][MAXN];12 bool OK(int a,int b)13 {14 int i,temp,cnt;15
阅读全文
【总结】后缀数组
摘要:1、基本定义。子串:字符串S的子串r[i...j]。后缀:以i开始的后缀表示为Suffix(i)。大小比较:按字典序。后缀数组:SA是一个一维数组。将S的后缀从小到大排序后,后缀的开头位置顺次放入SA。(SA[i]=j:排在第i个的是Suffix(j))名词数组:Rank[i]是Suffix(i)在后缀中从小到大排列的名次。(Rank[i]=j:Suffix(i)排在第j个)后缀数组和名次数组为互逆运算:设Rank[i]=j,则SA[j]=i。2、倍增算法。目的:设字符串长度为n,在O(nlog2n)求出SA数组和Rank数组。 1 int wa[MAXN],wb[MAXN],wv[MAXN]
阅读全文
【UVa】1223 Editor
摘要:1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 #define MAXN 5010 6 char s[MAXN]; 7 int wa[MAXN],wb[MAXN],wv[MAXN],ws[MAXN]; 8 int sa[MAXN],height[MAXN],rk[MAXN]; 9 inline bool cmp(int *r,int a,int b,int L)10 {11 return r[a]==r[b]&&r[a+
阅读全文
【FOJ】2075 Substring
摘要:1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 #define MAXN 100010 6 #define MAXM 20 7 char s[MAXN]; 8 int wa[MAXN],wb[MAXN],wv[MAXN],ws[MAXN]; 9 int sa[MAXN],height[MAXN],rk[MAXN]; 10 int st[MAXM][MAXN],log2[MAXN]; 11 inline bool cmp(int *r,i
阅读全文
【UVa】760 DNA Sequencing
摘要:1 #include<cstdio> 2 #include<cstring> 3 #define MAXN 660 4 char s[MAXN]; 5 int wa[MAXN],wb[MAXN],wv[MAXN],ws[MAXN]; 6 int sa[MAXN],height[MAXN],rk[MAXN]; 7 inline bool cmp(int *r,int a,int b,int L) 8 { 9 return r[a]==r[b]&&r[a+L]==r[b+L]; 10 } 11 void SA(int n,int m) 12 { 13 int
阅读全文
【UVa】11512 GATTACA
摘要:1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 #define MAXN 1010 6 char s[MAXN]; 7 int wa[MAXN],wb[MAXN],wv[MAXN],ws[MAXN]; 8 int sa[MAXN],height[MAXN],rk[MAXN]; 9 inline bool cmp(int *r,int a,int b,int L)10 {11 return r[a]==r[b]&&r[a+
阅读全文
【POJ】3294 Life Forms
摘要:1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 #define MAXN 1100 6 #define MAXL 200100 7 char str[MAXN][MAXN],s[MAXL]; 8 int wa[MAXL],wb[MAXL],wv[MAXL],ws[MAXL]; 9 int sa[MAXL],height[MAXL],rk[MAXL]; 10 int m,len[MAXN]; 11 inline bool cmp(int
阅读全文
【SPOJ】220 Relevant Phrases of Annihilation
摘要:1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 #define MAXN 10010 6 #define MAXM 10 7 #define MAXL 100100 8 #define INF 123456789 9 char s[MAXL],str[MAXM][MAXN]; 10 int m,len[MAXM]; 11 int wa[MAXL],wb[MAXL],wv[MAXL],ws[MAXL]; 12 int sa[MAXL],h
阅读全文
【POJ】3415 Common Substrings
摘要:1 #include<cstdio> 2 #include<cstring> 3 typedef __int64 LL; 4 #define MAXN 200010 5 char s[MAXN]; 6 int wa[MAXN],wb[MAXN],wv[MAXN],ws[MAXN]; 7 int sa[MAXN],height[MAXN],rk[MAXN]; 8 int stk[MAXN],cnt[MAXN]; 9 inline bool cmp(int *r,int a,int b,int len) 10 { 11 return r[a]==r[b]&&
阅读全文
【POJ】3693 Maximum repetition substring
摘要:1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 #define MAXN 100010 5 #define MAXM 20 6 char s[MAXN]; 7 int wa[MAXN],wb[MAXN],wv[MAXN],ws[MAXN]; 8 int sa[MAXN],height[MAXN],rk[MAXN]; 9 int st[MAXM][MAXN],log2[MAXN]; 10 int len[MAXN]; 11 inline bool cmp(int *r,int a,int
阅读全文
【SPOJ】687 Repeats
摘要:1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 #define MAXN 50010 5 #define MAXM 20 6 char s[MAXN]; 7 int wa[MAXN],wb[MAXN],wv[MAXN],ws[MAXN]; 8 int sa[MAXN],height[MAXN],rk[MAXN]; 9 int st[MAXM][MAXN],log2[MAXN]; 10 inline bool cmp(int *r,int a,int b,int len) 11 { 12
阅读全文
【URAL】1297 Palindrome
摘要:1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 #define MAXN 2200 6 #define MAXM 12 7 char s[MAXN],t[MAXN]; 8 int wa[MAXN],wb[MAXN],wv[MAXN],ws[MAXN]; 9 int sa[MAXN],rk[MAXN],height[MAXN]; 10 int st[MAXN][MAXM]; 11 inline bool cmp(int *r,int a,
阅读全文
【SPOJ】705 New Distinct Substrings
摘要:1 #include<cstdio> 2 #include<cstring> 3 typedef long long LL; 4 #define MAXN 50010 5 char s[MAXN]; 6 int wa[MAXN],wb[MAXN],wv[MAXN],ws[MAXN]; 7 int sa[MAXN],height[MAXN],Rank[MAXN]; 8 inline bool cmp(int *r,int a,int b,int len) 9 {10 return r[a]==r[b]&&r[a+len]==r[b+len];11 }12
阅读全文
【POJ】3261 Milk Patterns
摘要:1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 #define MAXN 20010 5 int in[MAXN],a[MAXN]; 6 int ws[MAXN],wv[MAXN],wa[MAXN],wb[MAXN]; 7 int sa[MAXN],Rank[MAXN],height[MAXN]; 8 int n,k; 9 inline bool cmp(int *r,int a,int b,int len)10 {11 return r[a]==r[b]&&r[a+le
阅读全文
【POJ】1743 Musical Theme
摘要:1 #include<cstdio> 2 #include<algorithm> 3 #define INF 0x7FFFFFFF 4 #define MAXN 20010 5 using namespace std; 6 int a[MAXN]; 7 int wa[MAXN],wb[MAXN],sa[MAXN],wv[MAXN],ws[MAXN]; 8 int height[MAXN],Rank[MAXN]; 9 inline bool cmp(int *r,int a,int b,int len)10 {11 return r[a]==r[b]&&r
阅读全文
【HDU】1403 Longest Common Substring
摘要:1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #define MAXN 200010 5 using namespace std; 6 char s[MAXN]; 7 int sa[MAXN],wa[MAXN],wb[MAXN],wv[MAXN],ws[MAXN]; 8 int Rank[MAXN],height[MAXN]; 9 inline bool cmp(int *r,int a,int b,int len)10 {11 return r[a]==r[b]&&am
阅读全文