2 条题解
-
0
#include <bits/stdc++.h> using namespace std; const int N=110; int dx[6]={0,0,1,1,-1,-1}; int dy[6]={1,-1,0,-1,0,1}; int n,a[N][N],b[N][N]; void dfs(int x,int y) { b[x][y]=1; for(int i=0;i<6;i++) { int xx=x+dx[i], yy=y+dy[i]; if(xx>=0 && xx<=n+1 && yy>=0 && yy<=n+1) if(a[x][y]==a[xx][yy]&&b[xx][yy]==0) dfs(xx,yy); } } int main() { freopen("a.in", "r", stdin); int T;scanf("%d",&T); while(T--) { scanf("%d",&n); for(int i=1;i<=n;i++) { a[0][i]=1; a[n+1][i]=1; a[i][0]=-1; a[i][n+1]=-1; } for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)scanf("%d",&a[i][j]); memset(b,0,sizeof(b)); dfs(0,1); if(b[n+1][1]!=0) { printf("Jimmy\n"); continue; } dfs(1,0); if(b[1][n+1]!=0) printf("Chen\n"); else printf("yet\n"); } return 0; } -
0
#include <bits/stdc++.h> using namespace std; const int N=110; int dx[6]={0,0,1,1,-1,-1}; int dy[6]={1,-1,0,-1,0,1}; int n,a[N][N],b[N][N]; void dfs(int x,int y) { b[x][y]=1; for(int i=0;i<6;i++) { int xx=x+dx[i],yy=y+dy[i]; if(xx>=0 && xx<=n+1 && yy>=0 && yy<=n+1) if(a[x][y]==a[xx][yy]&&b[xx][yy]==0) dfs(xx,yy); } } int main() { freopen("a.in","r",stdin); int T;scanf("%d",&T); while(T--) { scanf("%d",&n); for(int i=1;i<=n;i++) { a[0][i]=1; a[n+1][i]=1; a[i][0]=-1; a[i][n+1]=-1; } for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)scanf("%d",&a[i][j]); memset(b,0,sizeof(b)); dfs(0,1); if(b[n+1][1]!=0) { printf("Jimmy\n"); continue; } dfs(1,0); if(b[1][n+1]!=0) printf("Chen\n"); else printf("yet\n"); } return 0; }
- 1
信息
- ID
- 1904
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 10
- 标签
- 递交数
- 8
- 已通过
- 4
- 上传者