题意:
有一个圆圆的毯,被平均分成三个扇形。分为标记为A,B,C。
小余从A开始跳,每次可跳到相邻的扇形上。(A->B 或 A->C)
问小余跳n次,最后回到扇形A的方案数是多少。
思路:
A,B,C是三个状态。我们画一棵生长的树,一层一层下来,然后发现每一层上其实最多就只有三种状态。所以明显是可以用DP解喽
直接看代码。,
代码:
int main(){ int n; int f[1005][5]; while(cin>>n,n){ f[0][0]=1; f[0][1]=0; f[0][2]=0; rep(i,1,n){ f[i][0]=f[i-1][1]+f[i-1][2]; f[i][1]=f[i-1][0]+f[i-1][2]; f[i][2]=f[i-1][1]+f[i-1][0]; f[i][0]%=mol; f[i][1]%=mol; f[i][2]%=mol; } cout<<f[n][0]<<endl; } return 0; }
时间: 2024-10-28 08:21:32