2013年8月27日

POJ 3461 裸的KMP

摘要: 直接贴代码吧 1 #include 2 #include 3 char P[10004],T[1000006]; 4 int f[10004]; 5 int n,m; 6 void getfail() 7 { 8 f[0] = 0; 9 f[1] =0;10 for(int i=1; i<m; ++i)11 {12 int j=f[i];13 while(j && P[i] != P[j]) j = f[j];14 f[i+1] = P[i]==P[j] ? j+1:0;15 }16 }17 int KMP... 阅读全文

posted @ 2013-08-27 21:48 allh123 阅读(146) 评论(0) 推荐(0) 编辑

POJ 3233 Matrix Power Series 矩阵快速幂

摘要: 设S[k] = A + A^2 +````+A^k.设矩阵T =A[1]0EE这里的E为n*n单位方阵,0为n*n方阵令A[k] = A ^ k矩阵B[k] =A[k+1]S[k]则有递推式B[K] = T*B[k-1],即有B[k] = T^k*B[0],令S[0] 为n*n的0矩阵。矩阵快速幂求出即可·····还可以使用两次分治的方法····自行百度····贴代码: 1 #include 2 #include 3 int n,k,p,d;//d = 2*n 4 阅读全文

posted @ 2013-08-27 13:55 allh123 阅读(207) 评论(0) 推荐(0) 编辑

HDU 4686 矩阵快速幂 Arc of Dream

摘要: 由式子的性质发现都是线性的,考虑构造矩阵,先有式子,a[i] = ax * a[i-1] + ay; b[i] = bx*b[i-1] +by;a[i]*b[i] = ax*bx*a[i-1]*b[i-1] + ax*by*a[i-1] + bx*ay*b[i-1]+ay*by;s[i] = s[i-1] + a[i-1]*b[i-1];由此得到递推式 :设矩阵A=ax000ay0bx00byax*bybx*ayax*bx0ay*by0011000001矩阵B[i]=(a[i-1],b[i-1],a[i-1]*b[i-1],s[i-1],1)' (转置),B[i] =(a[i],b[i 阅读全文

posted @ 2013-08-27 12:16 allh123 阅读(219) 评论(0) 推荐(0) 编辑

导航