摘要:
http://poj.org/problem?id=2440 题意是给出两种串,要求计算长度为L的,而且不含那两种子串的串的个数。 这个的做法主要是要靠状态转移,而且明白转移的技巧做这题就如鱼得水,轻松过了!长度为3的01串也就8种状态,如果我们把它编号了,以后添加一位的时候,根据最后三位,我们就可以从之前的装态将已统计的个数转移到现在当前这一层来。例如,0可以由0或4转移过来。 然后就可以简单的构造出矩阵来了!代码如下:View Code 1 #include <cstdio> 2 #include <cstring> 3 #include <cassert&g 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=2276 还是矩阵快速幂的题,将异或的操作转换成矩阵乘法。1y!代码如下:View Code 1 #include <cstdio> 2 #include <cstring> 3 #include <cassert> 4 #include <algorithm> 5 6 using namespace std; 7 8 const int maxSize = 100; 9 const int initMod = 1E9 + 7; 10 int curSize = 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=1757 如题,简单的矩阵快速幂。1y!View Code 1 #include <cstdio> 2 #include <cstring> 3 #include <cassert> 4 #include <algorithm> 5 6 using namespace std; 7 8 const int maxSize = 10; 9 const int initMod = 1E9 + 7;10 int curSize = maxSize;11 int curM 阅读全文
摘要:
http://poj.org/problem?id=1840 简单hash。。。。很想知道那些200ms以内的是怎么搞的。。。View Code 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 5 using namespace std; 6 7 const int mod = 4000037; 8 const int HASH = 0x20decade; 9 const int inf = 0x7fffffff;10 11 int hash[mod];12 int used 阅读全文