USACO6.4.3 Wisconsin Squares(wissqu)
来源:互联网 发布:西安华信软件 编辑:程序博客网 时间:2024/06/06 02:21
按题目的要求搜索就好了,时限5s,基本用不着优化吧
(但是奇怪的是只有一个测试点,并且0.54s就过了)
既然要求字典序最小,除了第一位是d,后续的就是按字典序来枚举搜索咯
/*ID: xsy97051PROG: wissquLANG: C++*/#include <iostream>#include <cstring>#include <cstdio>using namespace std;const int dx[9]={0,1,0,-1,-1,-1,0,1,1};const int dy[9]={0,1,1,1,0,-1,-1,-1,0};char ans1[17],a[6][6];int f[6][6][6],ans2[17],ans3[17],rest[6];bool vis[6][6];int ans;void come(int x,int y,char c){ for(int i=0;i<=8;i++) f[x+dx[i]][y+dy[i]][c-64]++;}void go(int x,int y,char c){ for(int i=0;i<=8;i++) f[x+dx[i]][y+dy[i]][c-64]--;}void dfs(int x,int y,int c,int deep){ ans1[deep]=c; ans2[deep]=x; ans3[deep]=y; if(deep==16) { ans++; if(ans==1) for(int i=1;i<=16;i++) cout<<char(ans1[i]+64)<<" "<<ans2[i]<<" "<<ans3[i]<<endl; return; } go(x,y,a[x][y]); come(x,y,char(c+64)); vis[x][y]=1; for(int k=1;k<=5;k++) if(rest[k]) for(int i=1;i<=4;i++) for(int j=1;j<=4;j++) if(f[i][j][k]==0 && !vis[i][j]) { rest[k]--; dfs(i,j,k,deep+1); rest[k]++; } come(x,y,a[x][y]); go(x,y,char(c+64)); vis[x][y]=0;}int main(){ freopen("wissqu.in","r",stdin);freopen("wissqu.out","w",stdout); memset(f,0,sizeof(f)); for(int i=1;i<=5;i++) rest[i]=3; for(int i=1;i<=4;i++) { for(int j=1;j<=4;j++) { cin>>a[i][j]; come(i,j,a[i][j]); } getchar(); } memset(vis,0,sizeof(vis)); ans=0; for(int i=1;i<=4;i++) for(int j=1;j<=4;j++) if(f[i][j][4]==0) dfs(i,j,4,1); cout<<ans<<endl;return 0;}
0 0
- USACO6.4.3 Wisconsin Squares(wissqu)
- Wisconsin Squares
- Section 5.2 Wisconsin Squares
- usaco 5.2.3 Wisconsin Squares
- USACO Wisconsin Squares 解题报告
- usaco 5.2 Wisconsin Squares(DFS)
- USACO 6.4.3 Wisconsin Squares dfs
- USACO6.5.1 All Latin Squares(latin)
- USACO Section 5.2 Wisconsin Squares - 按要求DFS就行了..
- Squares
- Squares
- Squares
- Squares
- Squares
- Squares
- Squares
- Squares
- Squares
- An application for Apple Watch to control your Tesla Car
- springmvc 统一处理异常机制
- java中把一个字符串中大写字母转换为小写,小写字母转换为大写
- 第三方下拉刷新快速集成
- poj 2054 Color a Tree 据说是贪心
- USACO6.4.3 Wisconsin Squares(wissqu)
- 深入分析 Java I/O 的工作机制
- JAVA中关于String的若干问题
- poj2948--Martian Mining(dp)
- mini2440 使用mdev创建设备节点问题
- 使用webservice操作强类型数据集时的注意事项
- HDU 1000 A+B Problem C/C++
- 动态调用动态语言--脚本API
- USACO6.5.1 All Latin Squares(latin)