思路类似第一篇题解,不知道为什么WA,求救
查看原帖
思路类似第一篇题解,不知道为什么WA,求救
1404467
Lilindong楼主2024/10/17 19:45
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
    char m[12][12];
    int cx,cy,fx,fy,mi=0,b=1,c=1;
void jud(int cx,int cy,int fx,int fy,int b,int c,int mi)
{
    if(b==1) 
    {
        if(m[cx-1][cy]=='*') b+=1;else {cx-=1;};
    } 
    else if(b==2) 
    {
        if(m[cx][cy+1]=='*') b+=1;else {cy+=1;};
    }
    else if(b==3) 
    {
        if(m[cx+1][cy]=='*') b+=1;else {cx+=1;};
    }
    else if(b==4) 
    {
        if(m[cx][cy-1]=='*') b=1;else {cy+=1;};
    }
    if(c==1) {
        if(m[fx-1][fy]=='*') c+=1;else {fx-=1;};
    }
    else if(c==2) {
        if(m[fx][fy+1]=='*') c+=1;else {cy+=1;};
    }
    else if(c==3) {
        if(m[fx+1][fy]=='*') c+=1;else {fx+=1;};
    }
    else if(c==4) 
    {
        if(m[fx][fy-1]=='*') c=1;else {cy+=1;};
    }
    mi++;
}
int main(){

    for(int i=0;i<12;i++)
    {
        m[0][i]='*';
        m[i][11]='*';
        m[i][0]='*';
        m[11][i]='*';
    }
    for(int i=1;i<11;i++)
    for(int j=1;j<11;j++)
    {
        cin>>m[i][j];
        if(m[i][j]=='C') cx=i;cy=j;
        if(m[i][j]=='F') fx=i;fy=j;
    }
    while(cx!=fx||cy!=fy)
    {
        if(mi>146)
        return 0;
        jud(cx,cy,fx,fy,b,c,mi);
    }
    cout<<mi;
    return 0;
}
2024/10/17 19:45
加载中...