摘要: kmp+矩阵乘法。 好久以前做过,但我今天居然死活看不懂以前的程序,再写一发。 用f[i][j]表示前i个准考证号匹配了前j个不吉利数字的方案数。 tmp[i][j]表示匹配了前i个不吉利数字以后,增加一个字符可以匹配前j个不吉利数字的方案数。 我们可以枚举(i+1)位的数字,并用kmp求得的next数组进行转移,就可以求出tmp数组。 很显然有(就是我完全不知道为什么。。) f[i]... 阅读全文
posted @ 2016-07-16 22:06 invoid 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 矩阵乘法。 关于点的无法表示刚才走过的路不能走,所以用把边拆成俩个来建图,自己不能和自己连。 然后再用俩点表示起点和终点。 快速幂求矩阵(t+1)次就可以了(t+1次是因为到达终点那条边就需要t次,然后新建了一个终点,就会多走一步)。 阅读全文
posted @ 2016-07-16 19:40 invoid 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 矩阵乘法。 邻接矩阵用矩阵乘法可以得到最后的方案数 食人鱼是周期性的移动可以用12个矩阵表示。12个矩阵乘在一起得到第13个矩阵。 然后k/12的部分用第13个矩阵快速幂转移,再乘下剩余的矩阵。 #include #include #include #define LL long long using namespace std; const int maxn = 50 + 10;... 阅读全文
posted @ 2016-07-16 16:40 invoid 阅读(390) 评论(0) 推荐(0) 编辑