跳至内容
CVBB ACM Team
用户工具
注册
登录
站点工具
搜索
工具
显示页面
修订记录
Copy this page
导出 PDF
反向链接
最近更改
媒体管理器
网站地图
注册
登录
>
最近更改
媒体管理器
网站地图
您在这里:
front_page
»
2020-2021
»
teams
»
wangzai_milk
»
weekly
»
poj_2411
2020-2021:teams:wangzai_milk:weekly:poj_2411
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
[[http://poj.org/problem?id=2411|POJ 2411]] <code cpp> #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> using namespace std; int h,w; long long f[12][(1<<12)]; int read() { int x=0,f=1;char c=getchar(); while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();} while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();} return x*f; } int main() { h=read(),w=read(); while(h&&w) { if((h*w)%2){puts("0"),h=read(),w=read();continue;} memset(f,0,sizeof(f)); if(!h&&!w)break; for(int i=1;i<=h;i++) { for(int j=0;j<(1<<w);j++) { if(i==1) { f[i][j]=1; for(int l=1;l<(1<<w);l<<=1) { if((j&l)==0) { if((l<<1)>=(1<<w)){f[i][j]=0;break;} else if(j&(l<<1)){f[i][j]=0;break;} else l<<=1; } } } else { for(int k=0;k<(1<<w);k++) { if(!f[i-1][k])continue; f[i][j]+=f[i-1][k]; for(int l=1;l<(1<<w);l<<=1) { if(k&l) { if(j&l){f[i][j]-=f[i-1][k];break;} } else if((j&l)==0) { if((l<<1)>=(1<<w)){f[i][j]-=f[i-1][k];break;} else if(j&(l<<1)){f[i][j]-=f[i-1][k];break;} else if(k&(l<<1)){f[i][j]-=f[i-1][k];break;} else l<<=1; } } } } } } printf("%lld\n",f[h][0]); h=read(),w=read(); } return 0; } </code>
2020-2021/teams/wangzai_milk/weekly/poj_2411.txt
· 最后更改: 2020/05/10 01:33 由
zars19
页面工具
显示页面
修订记录
反向链接
Copy this page
导出 PDF
回到顶部