社区讨论

这题。。。普及-。搞了我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 条回复,欢迎继续交流。

正在加载回复...