20pts,q=1和mnq<100AC,其余TLE
查看原帖
20pts,q=1和mnq<100AC,其余TLE
1493023
USTCFailer楼主2024/10/18 12:51
forsizy,forsizx,movnum,chaind=map(int,input().split())
forlst,movlst=[],[]
for i in range(forsizy):
    forlst.append(input())
for i in range(movnum):
    temlst=input().split()
    movlst.append([temlst[0],int(temlst[1]),int(temlst[2]),1])
poslst=[0,0]
def mov(i):
    global poslst
    stp=movlst[i][1]*movlst[i][3]
    drn=movlst[i][0]
    if drn=="U":poslst[0]-=stp
    elif drn=="D":poslst[0]+=stp
    elif drn=="L":poslst[1]-=stp
    elif drn=="R":poslst[1]+=stp
    if poslst[0]<0:poslst[0]=0
    elif poslst[0]>=forsizx:poslst[0]=forsizx-1
    if poslst[1]<0:poslst[1]=0
    elif poslst[1]>=forsizy:poslst[1]=forsizy-1
def chg(i):
    if forlst[poslst[0]][poslst[1]]=="X" and movlst[i][2]!=0:
        for j in range(i+chaind,i+(movlst[i][2]+1)*chaind,chaind):
            movlst[j][3]*=-1
for i in range(movnum):
    mov(i)
    chg(i)
print(poslst[0]+1,poslst[1]+1)

求助各位大佬这个解答在算法上有什么可以优化的地方?

2024/10/18 12:51
加载中...