--------矩阵快速幂优化dp
扩展的灰
扩展的灰(Extended Ash)
展开
-
Jzoj4787 数格子
题意:用1x2的骨牌填满4xN的格子的方案数 设f[i][j]表示填到第i行,这一行的状态为j的方案数 f[i][j]=Σf[i-1][k],其中k->j是一个合法转移 合法转移要满足两个条件: 1.若k的第x位为0,那么j的第x位一定要为1 (~k|j==j) 2.k,j都为一的位置必须是偶数个且必须连续,即k&j的二进制不能出现单独一个1,例如0101不合法,0011和0110都合法原创 2017-10-25 21:07:45 · 405 阅读 · 0 评论 -
Jzoj4627 斐波那契数列
题意:求Fib(n) 此题渗水,这里讲一种不用矩阵的方法 令f[n]=Fib(n) 我们假设k=n/2 那么久有以下递推式: 若n-k%2=1 f[n]=f[k]*f[k]+f[k+1]*f[k+1] 否则 f[n]=f[k]*f[k+1]+f[k+1]*(f[k]+f[k+1]) 边界特判一下就好了,复杂度lg n #include #define L long long原创 2017-10-11 21:45:49 · 459 阅读 · 0 评论 -
51nod1122 机器人走方格V4
题目看这里 看一看知道可以dp 设f[i][s1][s2][s3][s4]表示走了i步,每个机器人分别在哪个格子里 用矩阵优化 但是发现状态数过于巨大,会TLE 考虑设f[i][j][k]表示走了i步,从j格子走到k格子的方案数 那么显然f[i]=T^i 其中T是全1矩阵减掉单位矩阵 那么可以快速幂求出f 接下来枚举4的全排列g,表示第i个机器人走到g[i] 答案就是∑∏f[i]原创 2018-04-27 11:49:53 · 254 阅读 · 0 评论