标签:eth not put which col cti removing art nes
InputThe first line of the input gives the number of test cases, T(1≤T≤100)T(1≤T≤100). TT test cases follow. Test cases are separated by an empty line. Each test case consist of 9 lines represent the game board. Each line consists of 9 characters. Each character represents a cell on the game board. ′.′′.′ represents an empty cell. ′x′′x′ represents a cell with black chess which owned by Yu Zhou. ′o′′o′ represents a cell with white chess which owned by Su Lu.OutputFor each test case, output one line containing Case #x: y, where xx is the test case number (starting from 1) and yy is Can kill in one move!!! if Yu Zhou has a move to kill at least one of Su Lu‘s components. Can not kill in one move!!! otherwise.Sample Input
2 .......xo ......... ......... ..x...... .xox....x .o.o...xo ..o...... .....xxxo ....xooo. ......ox. .......o. ...o..... ..o.o.... ...o..... ......... .......o. ...x..... ........o
Sample Output
Case #1: Can kill in one move!!! Case #2: Can not kill in one move!!!
Hint
In the first test case, Yu Zhou has 4 different ways to kill Su Lu‘s component. In the second test case, there is no way to kill Su Lu‘s component.
对于围棋来说,只要一个棋子上下左右被包住,就被吃掉了,问是否可以一步吃掉对方的棋子
.x.
xox
...
显然x下在o下面,就可以把o吃掉
#include <bits/stdc++.h> #define rap(i,n) for(int i=1;i<=n;i++) using namespace std; char a[10][10]; bool vis[10][10]; int fx[4] = {0,0,1,-1}; int fy[4] = {1,-1,0,0}; bool check(int x,int y) { if( x>0 && x<=9 && y>0 && y<=9 && vis[x][y] == 0) return true; return false; } int dfs(int x,int y) { vis[x][y] = 1; int sum = 0; int xx=0,yy=0; for(int i=0; i<4; i++) { xx=x+fx[i]; yy=y+fy[i]; if(check(xx,yy)) { if(a[xx][yy]==‘.‘) { vis[xx][yy] = 1; sum++; //cout<<"xx : "<<xx<<"yy: "<<yy<<endl; } else if(a[xx][yy] == ‘x‘) continue; else if(a[xx][yy] == ‘o‘){ sum+=dfs(xx,yy); } } } return sum; } int main() { int n; int cnt = 1; cin>>n; while(n--) { memset(vis,0,sizeof(vis)); rap(i,9) rap(j,9) { cin>>a[i][j]; } //cout<<" eg:"<<endl; //rap(i,9) { rap(j,9) { cout<<a[i][j]; }cout<<endl;} //cout<<"1 8"<<a[1][8]<<endl; bool flag = false; rap(i,9) rap(j,9) { if(a[i][j] == ‘o‘) { memset(vis,0,sizeof(vis)); int t = dfs(i,j); // cout<<" T : "<<t<<endl; if(t == 1) { flag = true; i=10,j=10; } } } cout<<"Case #"<<cnt<<": "; cnt++; if(flag)a cout<<"Can kill in one move!!!"<<endl; else cout<<"Can not kill in one move!!!"<<endl; } return 0; }
标签:eth not put which col cti removing art nes
原文地址:https://www.cnblogs.com/upstart/p/8974210.html