2012年4月25日
摘要: HDU_2276 这个题让我联想到了最近刚学的数电的时序逻辑电路…… 当前这个灯的状态取决于上一时刻左边的灯的状态以及自己的状态,枚举情况之后就会得到00->?0,01->?1,10->?1,11->?0,如果我们设f[i][j]表示i时刻第j个灯的状态,1表示亮,那么根据上面4种情况就可以得到f[i][j]=(f[i-1][j-1]+f[i-1][j])%2,这样我们根据递推公式构造矩阵后用二分矩阵的方法就可以快速求出最终的各个灯的状态了。#include<stdio.h>#include<string.h>#define MAXD 110in 阅读全文
posted @ 2012-04-25 23:37 Staginner 阅读(161) 评论(0) 推荐(0)
摘要: HDU_2294 我们可以用f[i][j]表示珠子长度为i的时候一共有j种颜色的方案数,那么就有f[i][j]=j*f[i-1][j]+(K-j+1)*f[i-1][j-1],最后的结果就是f[1][K]+f[2][K]+…+f[N][K]。 但由于N比较大,我们不能直接计算,但有了递推方程以后发现是可以构造出K*K的矩阵后用二分矩阵的方法去快速计算f[i][K]的,但对于f[1][K]+f[2][K]+…+f[N][K]这个表达式该如何求解呢? 如果我们将构造出的递推关系的矩阵看成矩阵A,然后就可以用POJ_3233的方法先求A+A^2+A^3+…+A^K,然后就比较容易得到结果了。 或.. 阅读全文
posted @ 2012-04-25 22:04 Staginner 阅读(239) 评论(0) 推荐(0)