社区讨论
这题。。。普及-。搞了我80行
P1101单词方阵参与者 5已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mi6mfp93
- 此快照首次捕获于
- 2025/11/20 07:16 4 个月前
- 此快照最后确认于
- 2025/11/20 07:16 4 个月前
CPP
#include<stdio.h>
#include<string.h>
char map2[101][101];
int n;
int s;
char map[101][101];
char str[10]="yizhong";
int vis[1000][2];
void f(int vis[1000][2])
{
int i,j;
for(i=0;i<=6;i++)map2[vis[i][0]][vis[i][1]]=str[i];
/*for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
{printf("%c",map2[i][j]);}printf("\n");
}
printf("\n");*/
}
void dfs(int x,int y,int num)
{
//printf("%d %d %d\n",x,y,s);
vis[num][0]=x;vis[num][1]=y;
if(map[x][y]!=str[num])return;
if(map[x][y]=='g') {f(vis);return;}
if(s==0&&map[x][y]==str[num])
{dfs(x,y+1,num+1);}
if(s==1&&map[x][y]==str[num])
{dfs(x,y-1,num+1);}
if(s==2&&map[x][y]==str[num])
{dfs(x+1,y+1,num+1);}
if(s==3&&map[x][y]==str[num])
{dfs(x+1,y-1,num+1);}
if(s==4&&map[x][y]==str[num])
{dfs(x-1,y+1,num+1);}
if(s==5&&map[x][y]==str[num])
{dfs(x-1,y-1,num+1);}
if(s==6&&map[x][y]==str[num])
{dfs(x+1,y,num+1);}
if(s==7&&map[x][y]==str[num])
{dfs(x-1,y,num+1);}
}
int main()
{
scanf("%d",&n);
int i,j;
for(i=1;i<=n;i++)
{scanf("%s",map[i]+1);}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
if(map[i][j]=='y')
{
if(map[i][j+1]=='i')
{s=0;dfs(i,j,0);}
if(map[i][j-1]=='i')
{s=1;dfs(i,j,0);}
if(map[i+1][j+1]=='i')
{s=2;dfs(i,j,0);}
if(map[i+1][j-1]=='i')
{s=3;dfs(i,j,0);}
if(map[i-1][j+1]=='i')
{s=4;dfs(i,j,0);}
if(map[i-1][j-1]=='i')
{s=5;dfs(i,j,0);}
if(map[i+1][j]=='i')
{s=6;dfs(i,j,0);}
if(map[i-1][j]=='i')
{s=7;dfs(i,j,0);}
}
}
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
{if(!map2[i][j])
{printf("*");}
else {printf("%c",map2[i][j]);}
}printf("\n");
}
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...