第5个测试点WA,89分,求助求助!!
查看原帖
第5个测试点WA,89分,求助求助!!
961972
Lele_Programmer楼主2023/3/30 22:04

我的代码:

#include <bits/stdc++.h>
using namespace std;

int main() {
    char m[10][10];
    bool his[1000000];
    memset(his,false,sizeof(his));
    int fr,fc,cr,cc,frs=-1,fcs=0,crs=-1,ccs=0;
    for (int i=0;i<10;++i) {
        for (int j=0;j<10;++j) {
            cin>>m[i][j];
            if (m[i][j]=='F') {
                fr=i;fc=j;
            } else if (m[i][j]=='C') {
                cr=i;cc=j;
            }
        }
    }
    int i=1;
    int special_value;
    bool fturn,cturn;
    while (true) {
        fr+=frs;fc+=fcs;cr+=crs;cc+=ccs;
        fturn=false;cturn=false;
        if (fr<0 || fr>9 || fc<0 || fc>9 || m[fr][fc]=='*') {
            fturn=true;
            fr-=frs;fc-=fcs;
            if (frs==-1 && fcs==0) {
                frs=0;fcs=1;
            } else if (frs==0 && fcs==1) {
                frs=1;fcs=0;
            } else if (frs==1 && fcs==0) {
                frs=0;fcs=-1;
            } else {
                frs=-1;fcs=0;
            }
        }
        if (cr<0 || cr>9 || cc<0 || cc>9 || m[cr][cc]=='*') {
            cturn=true;
            cr-=crs;cc-=ccs;
            if (crs==-1 && ccs==0) {
                crs=0;ccs=1;
            } else if (crs==0 && ccs==1) {
                crs=1;ccs=0;
            } else if (crs==1 && ccs==0) {
                crs=0;ccs=-1;
            } else {
                crs=-1;ccs=0;
            }
        }
        if (!(fturn && cturn)) {
            int facea,faceb;
            if (frs==0 && fcs==0) facea=0;
            else if (frs==0 && fcs==1) facea=1;
            else if (frs==0 && fcs==-1) facea=2;
            else if (frs==1 && fcs==0) facea=3;
            else if (frs==1 && fcs==1) facea=4;
            else if (frs==1 && fcs==-1) facea=5;
            else if (frs==-1 && fcs==0) facea=6;
            else if (frs==-1 && fcs==1) facea=7;
            else if (frs==-1 && fcs==-1) facea=8;
            if (crs==0 && ccs==0) faceb=0;
            else if (crs==0 && ccs==1) faceb=1;
            else if (crs==0 && ccs==-1) faceb=2;
            else if (crs==1 && ccs==0) faceb=3;
            else if (crs==1 && ccs==1) faceb=4;
            else if (crs==1 && ccs==-1) faceb=5;
            else if (crs==-1 && ccs==0) faceb=6;
            else if (crs==-1 && ccs==1) faceb=7;
            else if (crs==-1 && ccs==-1) faceb=8;
            special_value=(fr*10+fc)*10000+(cr*100+cc)+facea*10+faceb;
            if (his[special_value]) {
                cout<<0<<endl;
                break;
            } else {
                his[special_value]=true;
            }
        }
        if (fr==cr && fc==cc) {
            cout<<i<<endl;
            break;
        }
        ++i;
    }
    return 0;
}

第5个测试点总是WA,但是找不出哪里错,麻烦大佬指点指点!!!感谢!

2023/3/30 22:04
加载中...