UVA 141 - The Spot Game
来源:互联网 发布:c语言实战演练 编辑:程序博客网 时间:2024/05/20 13:14
哈哈,非常独立的完成了这个题目,虽然WA了好几次,但是独立嘛,好的开始,要坚持!
这个题主要是状态的保存,因为要判断之前是否出现过,所以把每次移动后的状态用map<string ,int>保存的,(某一点有棋子用‘2’表示,没有用‘1’表示,然后转化成字符串,string类),比较奇怪的是,两种保存状态都AC了:
1:只保存每次移动后的状态
这个题主要是状态的保存,因为要判断之前是否出现过,所以把每次移动后的状态用map<string ,int>保存的,(某一点有棋子用‘2’表示,没有用‘1’表示,然后转化成字符串,string类),比较奇怪的是,两种保存状态都AC了:
1:只保存每次移动后的状态
2:保存每次移动后的状态,以及顺时针旋转90度,逆时针旋转90度,旋转180度后的状态。
#include<cstdio>#include<iostream>#include<cstring>#include<string>#include<map>using namespace std;char maze[105][105];int n;map<string,int>vis;string change(int i){ string s; if(i==0) { for(int j=0; j<n; j++) { for(int k=0; k<n; k++) s+=maze[j][k]; } } else if(i==1) { for(int k=0; k<n; k++) { for(int j=n-1; j>=0; j--) s+=maze[j][k]; } } else if(i==2) { for(int j=n-1; j>=0; j--) { for(int k=n-1; k>=0; k--) s+=maze[j][k]; } } else if(i==3) { for(int j=n-1; j>=0; j--) { for(int k=0; k<n; k++) s+=maze[k][j]; } } return s;}int main(){ //freopen("in.txt","r",stdin); int x,y,i,player; char c; while(scanf("%d",&n)!=EOF&&n) { vis.clear(); memset(maze,'1',sizeof(maze)); string s; for(i=0; i<n; i++) { for(int j=0; j<n; j++) s+=maze[i][j]; } vis[s]=1; int flag=0; int step; for( i=0; i<2*n; i++) { scanf("%d %d %c\n",&x,&y,&c); if(flag) continue; if(c=='+') maze[x-1][y-1]='2'; else if(c=='-') maze[x-1][y-1]='1'; string ss[4]; for(int j=0; j<4; j++) { ss[j]=change(j); if(vis[ss[j]]!=0) { flag=1; step=i+1; player=i; break; } } if(!flag) { for(int j=0; j<4; j++) vis[ss[j]]=1; //vis[ss[0]]=1; } } if(flag) { if(player%2==0) player=2; else player=1; printf("Player %d wins on move %d\n",player,step); } else cout<<"Draw"<<endl; } return 0;}
- Uva 141 The spot game
- UVa 141 The Spot Game
- uva 141 - The Spot Game
- uva 141 The Spot Game
- UVa 141 - The Spot Game
- UVA 141 - The Spot Game
- UVA 141 - The Spot Game
- UVa:141 The Spot Game
- UVA 141 - The Spot Game
- UVA - 141 The Spot Game
- UVa 141 - The Spot Game
- uva 141 The Spot Game
- UVA - 141 The Spot Game
- uva 141 The Spot Game hash
- UVA 141 The Spot Game 斑点游戏。。
- uva 141 The Spot Game(STL set)
- UVa 141 & HOJ 1186 - The Spot Game
- UVA - 141 The Spot Game(hash)
- 请不要做浮躁的嵌入式系统工程师
- Message Flood
- Java继承的基本概念及其限制 总结
- codelite Project Settings
- 冒泡排序
- UVA 141 - The Spot Game
- PUTTY中文显示乱码问题
- 现在的境遇
- 远程登录linux 系统进入图形化界面
- SVN-Attempted to lock an already-locked dir错误
- 大学——能不能让自己成才
- 最长回文子串
- C++ 一些不容忽视的基础
- Coco2d-x linux编译