ZOJ 3697 Bad-written Number
来源:互联网 发布:win10桌面时钟软件 编辑:程序博客网 时间:2024/06/07 03:33
超时程序
#include<stdio.h>#include<string.h>const int MAXN=100000;char ch[3][MAXN];int d[MAXN][10][10];int C[10][3][3]={0,1,0,1,0,1,1,1,1,0,0,0,0,0,1,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,1,1,1,0,0,1,0,1,0,1,1,0,0,1,1,0,1,0,1,1,0,1,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1};int tmp[3][5];int num[10][10];int fun1(int x,int y){int i,j;int cnt,s;memset(tmp,0,sizeof(tmp));for(i=0;i<3;i++){for(j=0;j<3;j++){tmp[i][j]=C[x][i][j];}}for(i=0;i<3;i++){for(j=0;j<3;j++){if(C[y][i][j])tmp[i][j+2]=1;}}cnt=1,s=0;for(i=0;i<3;i++){for(j=0;j<5;j++){if(tmp[i][j]){s+=cnt;}cnt*=2;}}return s;}int fun2(int x,int y,int m){int i,j;memset(tmp,0,sizeof(tmp));for(i=0;i<3;i++){for(j=0;j<3;j++){tmp[i][j]=C[x][i][j];}}for(i=0;i<3;i++){for(j=0;j<3;j++){if(C[y][i][j])tmp[i][j+2]=1;}}for(i=0;i<3;i++){if(C[m][i][2]){tmp[i][0]=1;}}int cnt=1,s=0;for(i=0;i<3;i++){for(j=0;j<5;j++){if(tmp[i][j]){s+=cnt;}cnt*=2;}}return s;}int main(){int T,n;int i,j,k,ok,m;int cnt,s;for(i=0;i<10;i++){for(j=0;j<10;j++){num[i][j]=fun1(i,j);}}scanf("%d",&T);while(T--){scanf("%d",&n);getchar();gets(ch[0]);gets(ch[1]);gets(ch[2]);for(i=0;i<3;i++){for(j=0;j<2*n+1;j++){if(ch[i][j]!=' ' && ch[i][j]!='_' && ch[i][j]!='|')ch[i][j]=' ';}}if(n==0){printf("0\n");continue;}if(n==1){ok=0;for(k=0;k<10;k++){cnt=1;for(i=0;i<3 && cnt;i++){for(j=0;j<3 && cnt;j++){if( !( (ch[i][j]!=' ' && C[k][i][j]) || (ch[i][j]==' ' && !C[k][i][j]) ) ){cnt=0;}}}if(cnt){ok++;break;}}if(ok)printf("1\n");elseprintf("0\n");continue;}for(i=2;i<=n;i++){for(j=0;j<10;j++){for(k=0;k<10;k++){d[i][j][k]=0;}}}for(k=2;k<=n;k++){cnt=1,s=0;for(i=0;i<3;i++){for(j=k*2-4;j<2*k+1;j++){if(ch[i][j]!=' '){s+=cnt;//printf("%d %d\n",cnt,s);}cnt*=2;}}if(k==2){ok=0;for(i=0;i<10;i++){for(j=0;j<10;j++){if(num[i][j]==s){d[k][j][i]=(d[k][j][i]+1)%1000000007;ok=1;}}}if(!ok){printf("0\n");break;}}else{ok=0;for(i=0;i<10;i++){for(j=0;j<10;j++){for(m=0;m<10;m++){if(fun2(i,j,m)==s){d[k][j][i]=(d[k][j][i]+d[k-1][i][m])%1000000007;ok=1;}}}}}}if(!ok)continue;s=0;for(i=0;i<10;i++){for(j=0;j<10;j++)s=(s+d[n][i][j])%1000000007;}printf("%d\n",s);}return 0;}
- ZOJ 3697 Bad-written Number
- ZOJ 3697 Bad-written Number
- ZOJ3697-Bad-written Number
- ZOJ3697 Bad-written Number
- 好贴要转--bad magic number
- POJ3902 The Bad Number
- The Bad Number poj3902
- Bad number of channels()
- Bad version number in .class.....
- OGG-01224 Bad file number
- TortoiseGit Bad file number 解决方法
- Git的Bad file number
- ORA-27063: number of bytes read/written is incorrect
- ZOJ 1039 Number Game
- zoj 1526 Big Number
- ZOJ 2829 Beautiful Number
- zoj 2105 Number Sequence
- zoj 1526 Big Number
- 美妙的模电2013/4/20
- 双口RAM
- 排列组合总结:将结果进行输出
- git服务器搭建
- hdoj_1548A strange lift
- ZOJ 3697 Bad-written Number
- ubuntu 解压7z压缩包
- 2SAT问题解题报告
- RadioButton之一
- hdu 2521
- PHP中魔术方法的用法
- ubuntu 12.04 lts 源问题
- MFC UpdateData(FALSE)和UpdateData(TRUE)的作用
- 多种方法查看Oracle SQL执行计划