@[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