社区讨论
个人检查没问题啊?为啥全wa
P1101单词方阵参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @lyy641dx
- 此快照首次捕获于
- 2024/07/23 16:42 2 年前
- 此快照最后确认于
- 2024/07/23 18:12 2 年前
急救在线等!
CPP#include<stdio.h>
int dx[8]={0,1,1,1,0,-1,-1,-1};
int dy[8]={1,1,0,-1,-1,-1,0,1};
int n,adfs[1000][1000],f[1000][1000],f2[9],f3[9];
char e;
void dfs(int x,int y,int l,int sum){
if(l==1){
for(int i=0;i<8;i++){
if(adfs[x+dx[i]][y+dy[i]]==2){
f2[1]=x;
f3[1]=y;
dfs(x+dx[i],y+dy[i],2,i);
}
}
return;
}
if(l>1&&l<7){
int xx=x+dx[sum],yy=y+dy[sum];
if(adfs[xx][yy]==l+1){
f2[l]=x;
f3[l]=y;
dfs(xx,yy,l+1,sum);
}
}
if(l==7){
if(adfs[x][y]==7){
for(int i=1;i<=7;i++) f[f2[i]][f3[i]]=1;
}
}
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
scanf(" %c",&e);
if(e=='y') adfs[i][j]=1;
else if(e=='i') adfs[i][j]=2;
else if(e=='z') adfs[i][j]=3;
else if(e=='h') adfs[i][j]=4;
else if(e=='o') adfs[i][j]=5;
else if(e=='n') adfs[i][j]=6;
else if(e=='g') adfs[i][j]=7;
else adfs[i][j]=0;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(adfs[i][j]==1) dfs(i,j,1,0);
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(f[i][j]==0) printf("*");
else if(f[i][j]==1){
if(adfs[i][j]=1) printf("y");
else if(adfs[i][j]=2) printf("i");
else if(adfs[i][j]=3) printf("z");
else if(adfs[i][j]=4) printf("h");
else if(adfs[i][j]=5) printf("o");
else if(adfs[i][j]=6) printf("n");
else if(adfs[i][j]=7) printf("g");
}
}
printf("\n");
}
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...