💔 💔 💔
题意:每次相连最多只有两个同种颜色的方块相接,有多少种列法
过的人好多,,大家DP都这么强吗QAQ
1,第一行只要有两个颜色相同,整张图即可确定
2,若第一行全是黑白交替,那么接下来每一行也必须是黑白交替,不过每一行下面有时有两种情况(这个推导怎么似曾相识,应该意识到这时候就和一行里面的分析是一样的),所以这时候就要转去看列,横着的黑白用黑代替,白黑用白代替,第一列确定也可确定整个图
3,按行计算之后会将整张图无相同元素相邻的两种情况计算进去,按列计算又算了一遍,最后要减去2
const int mod=1e9+7;
int dp[MAXN];
int main()
{
int n,m;cin>>n>>m;
if(n>m) swap(n,m);
dp[1]=2,dp[2]=4;
for(int i=3;i<=m;++i) dp[i]=(dp[i-1]+dp[i-2])%mod;
cout<<(dp[n]+dp[m]-2)%mod<<endl;
return 0;
}