python求助
查看原帖
python求助
882281
LANQIAO_楼主2022/11/28 23:31

2,3,5,6,8可以AC

看了测试点1的数据,运行出来是58啊,可是判WA

def check(turn,x,y):
    if turn ==0 and m[x-1][y]!='*':
        return 1
    elif turn ==1 and m[x][y+1]!='*':
        return 1
    elif turn ==2 and m[x+1][y]!='*':
        return 1
    elif turn ==3 and m[x][y-1]!='*':
        return 1
    else:
        return 0
def move(turn,x,y):
    if turn==0:
        return x-1,y
    if turn==1:
        return x,y+1
    if turn==2:
        return x+1,y
    if turn==3:
        return x,y-1
m=[[0 for i in range(12)]for i in range(12)]
v=[0]*1600005
f=[0,0,0]
c=[0,0,0]
ans=0
for i in range(0,12):
    m[0][i] = '*'
    m[11][i] = '*'
for i in range(1,11):
    srt=input()
    srt='*'+srt+'*'
    m[i]=list(srt)
for i in range(0,12):
    for j in range(0,12):
        if m[i][j]=='F':
            f[1]=i
            f[2]=j
        if m[i][j]=='C':
            c[1]=i
            c[2]=j
turn_f=0
turn_c=0
while not(f[1]==c[1] and f[2]==c[2]):
    t=f[1]+f[2]*10+c[1]*100+c[2]*1000+turn_c*10000+turn_f*100000
    if v[t]==1:
        print(0)
        exit()
    v[t]=1
    if check(turn_f,f[1],f[2]):
        f[1], f[2]=move(turn_f,f[1],f[2])
    else:
        turn_f=(turn_f+1)%4
    if check(turn_c,c[1],c[2]):
        c[1], c[2]=move(turn_c,c[1],c[2])
    else:
        turn_c=(turn_c+1)%4
    ans+=1
print(ans)
2022/11/28 23:31
加载中...