Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <cstring>using namespace std;long long sum[2][1<<6];//利用滚动数组节约空间const int dvi=1000000007;void dfs(int col,int next,int prev,int t,int w)//深度优先,DP动态规划{if(col==w){sum[t%2][next]+=sum[(t+1)%2][prev];sum[t%2][next]%=dvi;return;}else{if(col+1<=w){dfs(col+1,(next<<1)|1,prev<<1,t,w);//竖着放置dfs(col+1,next<<1,(prev<<1)|1,t,w);//不放置}if(col+2<=w){dfs(col+2,(next<<2)|3,(prev<<2)|3,t,w);//横着放置}}}int main(){int h,w;cin>>h>>w;if((h*w)%2){cout<<0<<endl;}else{if(h<w){