为什么错误?

P1722 矩阵 II

@[fishtail](/user/278017) 您能详细解释一下递推关系式的意义吗?
by metaphysis @ 2021-03-31 12:46:06


```C++ #include <bits/stdc++.h> using namespace std; int f[110][210];//f[第几组][红比黑多]=方案数 int n, ans; int main() { cin>>n; f[1][0]=1; //第1轮红黑相同方案数1 f[1][2]=1; //第1轮红比黑多2方案数2 /* 顺推: f[i][0]是由上一轮红黑相同f[i-1][0]加1块红黑 + 上一轮红比黑多2的f[i-1][2]情况加1块黑黑 f[i][2]是由上一轮红黑相同f[i-1][0]加1块红红 + 上一轮红比黑多2的f[i-1][2]情况加1块红黑 */ for(int i=2;i<=n;i++){ //差值为0 ,红黑比例不变+红少2 f[i][0]=(f[i-1][0]+f[i-1][2])%100; //这里是按照论坛中说题目错误,红黑差值不超过2 //如果红比黑可以多的多,那用个for循环计算i=2到200的偶数位置就行(红比黑多的肯定是多偶数个) // //红黑比例不变+红多2+红少2 // for(int j=2;j<=200;j+=2){ // f[i][j]=f[i-1][j]+f[i-1][j-2]+f[i-1][j+2]; // f[i][j]%=100; // } //差值位2,红黑比例不变+红多2 f[i][2]=(f[i-1][2]+f[i-1][0])%100; } //计算所有可能 //for(int i=0; i<=200;i++) ans+=f[n][i]; ans=f[n][0]; cout<<ans%100; return 0; } ```
by fishtail @ 2021-03-31 14:22:27


|