E的一个不同的解法 考虑dp,令f[i][0/1][0/1]表示考虑前i位,且当前位是奇数/偶数,上一位是奇数/偶数的方案数 以f[i][0][0]转移为例子,假如当前位是0,上一位是0,那么上上位就必须填0(三位之和为偶数) f[i][0][0]=f[i-1][0][0]*(k/2),k/2表示k内的偶数个数 由此可以类推f[i][0][1],f[i][1][0],f[i][1][1]的转移方程 发现i那一维可以滚动,并且这个玩意可以用矩阵快速幂优化,就可以通过了 //dp代码 #include<iostream> using namespace std; int n; cons...