摘要:
http://poj.org/problem?id=3420View Code //矩阵乘法做递推Matrix mat(16,16);void get_init() { mat.reset(); mat(0,15)=mat(1,14)=mat(2,13)=1; mat(3,12)=mat(3,15)=mat(4,11)=1; mat(5,10)=mat(6,9)=mat(6,15)=1; mat(7,8)=mat(7,14)=mat(7,11)=1; mat(8,7)=mat(9,6)=mat(10,5)=1; mat(11,4)=mat(11,7)=... 阅读全文
摘要:
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34348View Code const int MM = 11111;#define debug puts("wrong")//typedef __int64 int64;int p[MM]={1,2,5,10,20,50,100,200};int num[MM], g[MM], gg[MM];int N,M,sum=0;void get_data() { int i,j,k; for(i=sum=0;i<8;i++) { scanf(" 阅读全文
摘要:
View Code #define ROOT 0const int MAX_NODE=100100;//stringnum*stringlenconst int CHI=26; //儿子数struct ACtree { int size; int hash[300]; int val[MAX_NODE]; int fail[MAX_NODE]; int SQ[MAX_NODE]; int chd[MAX_NODE][CHI]; void get_hash() { int i,j,k; for(i=0;i<CHI;i++) ... 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=1545View Code const int MM = 11111;#define debug puts("wrong")typedef __int64 int64;int N,M;int64 dp[63][11][11];//j min(0-1) k max(0-1)void solve() { int i,j,k;int64 tmp,t1,t2; memset(dp[0],0,sizeof(dp[0])); dp[0][M][M]=1; for(i=1;i<=N;i++) { . 阅读全文
摘要:
http://poj.org/problem?id=2186View Code const int MM = 11111;#define debug puts("wrong")typedef __int64 int64;int N,M;vector<int>edge[MM];const int maxn = 11111; //节点数bool instack[maxn];int ief,top,bcnt,st[maxn];int low[maxn],dfn[maxn],belong[maxn];int out[MM];void get_data() { int i 阅读全文
摘要:
View Code //Raney引理:设整数序列A={Ai,i=1,2,...,N},且部分和为Sk=A1+,...,+Ak,序列中的所有的数字之和为Sn=1; 则在A的N个循环表示中,有且仅有一个序列B,满足B的任意部分和Si均大于零。//证明由于Sn=1,则Sk+Sn=Sk+1,存在这样一个数x,当在x和x+1之间的某点过后,其后所有的点都在0以上。 //序列// 一个序列{Ai,i=0,1,2,....,3n},由 3n+1项组成,每一项是1或-2。定义部分和Sk=A0+A1+...+Ak,求所有满足S3n=1,而且对k=0,1,...3n,Sk>0,的序列的个数。// ... 阅读全文