50分求助!!!用搜索写的
查看原帖
50分求助!!!用搜索写的
682896
e_mei_mountain_704楼主2025/7/20 09:47

觉得没啥问题,但就是错了。。。。。。

代码:

#include <iostream>
#include <algorithm>
#include <string>
#include <cstring>

using namespace std;

int dx[]={1, -1, 0, 0, 1, -1, 1, -1};
int dy[]={0, 0, 1, -1, 1, -1, -1, 1};
const int N=33;
char s[N][N];
int ar[N][N];
int n, m;
int vis[N][N];

int dbfs(int x, int y)
{
    int xxx=ar[x][y];
    if (xxx==1) return 2;
    for (int i=0; i<8; i++)
    {
        int flag=0;
        for (int j=1; j<=5; j++)
        {
            x+=dx[i], y+=dy[i];
            if (x<1 || x>n || y<1 || y>m || vis[x][y] || ar[x][y]!=xxx)
            {
                flag=1;
                break;
            }
            vis[x][y]=1;
        }
        if (flag==0)
        {
            if (xxx==2) return 1;
            else return 0;
        }
    }
    return 2;
}

void e_mei ()
{
    cin>>n>>m;
    int cnt=0;
    for (int i=1; i<=n; i++)
        for (int j=1; j<=m; j++)
        {
            cin>>s[i][j];
            if (s[i][j]=='~') ar[i][j]=1;
            if (s[i][j]=='*')
            {
                ar[i][j]=2;
                cnt++;
            }
            if (s[i][j]=='$')
            {
                ar[i][j]=3;
                cnt++;
            }
        }
    for (int i=1; i<=n; i++)
    {
        for (int j=1; j<=m; j++)
        {
            int a=dbfs(i, j);
            if (a==1)
            {
                cout<<"Pleasing!";
                return ;
            }
            else if (a==0)
            {
                cout<<"zylwins!";
                return ;
            }
        }
        memset (vis, 0, sizeof (vis));
    }
    if (cnt%2==0) cout<<"W";
    else cout<<"Z";
}

int main ()
{
    ios::sync_with_stdio(false);
    cin. tie (0), cout. tie (0);
    e_mei ();
    return 0;
}
2025/7/20 09:47
加载中...