摘要: 题意:给n个block涂4种颜色,要求其中red和green的block为偶数,其余随意。输出方案总数思路:递推,设dp[i][j][k] 表示前i个block ,有j个red,k个green,的方案总数又因为j,k不是奇数就是偶数,可以简化j,k=1则表示奇数,j,k=0表示偶数就可以递推了~用矩阵递推更有效率~def={{2,0,1,1}, {0,2,1,1}, {1,1,2,0}, {1,1,0,2}}ans[0]={0,1,0,0}ans[i]=def^k*ans[i-1]注意:矩阵乘法不满足交换律。View Code 1 #include <cstdio> 2 #incl 阅读全文
posted @ 2012-10-10 22:28 proverbs 阅读(348) 评论(0) 推荐(0)
摘要: 题意:an=Σ1<=i<=k (an-i*bi)mod 10000分析:典型的矩阵乘法解线性递推式~无限YM MATRIX67神犇~http://www.matrix67.com/blog/archives/276/comment-page-1#comment-223435View Code 1 #include <cstdio> 2 #include <cstring> 3 #include <cstdlib> 4 #include <iostream> 5 6 #define SIZE 110 7 #define mod 1000 阅读全文
posted @ 2012-10-10 21:54 proverbs 阅读(501) 评论(0) 推荐(0)
摘要: 题意:求S到T的经过k条路径的最短路(这题出的真心好)思路:设d[i][j][k]为从i到j经过k条边的最短路,则d[i][j][k]=d[i][p][k/2]+d[p][j][k/2]利用倍增加速floyd其实说实话矩阵乘法和floyd真心很像,直接写成矩阵乘法的格式了~PS:读入边的时候,第一个元素是边权,我纠结了半天,怎么看图也不连通。。。。View Code 1 #include <cstdio> 2 #include <cstring> 3 #include <cstdlib> 4 #include <iostream> 5 #incl 阅读全文
posted @ 2012-10-10 21:14 proverbs 阅读(309) 评论(0) 推荐(0)
摘要: 题意:求斐波那契数列第n项,mod 10000思路:本来是需要自己构造矩阵的,可是这题太仁慈了,都给画出来了,不愧是模板题~贡献我丑陋的模板PS:还是要反对模板化的代码,还是亲手打才是最好的,我都是现打的,不过需者自取~View Code 1 #include <iostream> 2 #include <cstring> 3 #include <cstdlib> 4 #include <cstdio> 5 6 #define SIZE 4 7 #define mod 10000 8 9 using namespace std;10 11 str 阅读全文
posted @ 2012-10-10 19:52 proverbs 阅读(635) 评论(0) 推荐(0)