python,超时了,请帮忙简化
查看原帖
python,超时了,请帮忙简化
838720
asdfjkd楼主2024/2/28 20:41

#输入初始化

maps = [[0] for i in range(500)]

Ins = [[0] for i in range(500)]

Hang = [-1, -1, 1, 1]

Lie = [-1, 1, 1, -1]

n, m = map(int, input().split())

num = 1

for i in range(n):

maps[i] = list(range(num, num+n))
num += n

for i in range(m):

Ins[i] = input().split()

#翻转 for i in range(m):

x = int(Ins[i][0]) - 1
y = int(Ins[i][1]) - 1
r = int(Ins[i][2])
z = int(Ins[i][3])
for j in range(r, 0, -1):#不同阶数

    for k in range(j*2):
    
        if z == 0:
            maps[x + Hang[0] * j][y + Lie[0] * j + k], maps[x + Hang[1] * j + k][y + Lie[1] * j], \
            maps[x + Hang[2] * j][y + Lie[2] * j - k], maps[x + Hang[3] * j - k][y + Lie[3] * j] = \
            maps[x + Hang[3] * j - k][y + Lie[3] * j], maps[x + Hang[0] * j][y + Lie[0] * j + k], \
            maps[x + Hang[1] * j + k][y + Lie[1] * j], maps[x + Hang[2] * j][y + Lie[2] * j - k]

        else:
            maps[x + Hang[0] * j][y + Lie[0] * j + k], maps[x + Hang[1] * j + k][y + Lie[1] * j], \
            maps[x + Hang[2] * j][y + Lie[2] * j - k], maps[x + Hang[3] * j - k][y + Lie[3] * j] = \
            maps[x + Hang[1] * j + k][y + Lie[1] * j], maps[x + Hang[2] * j][y + Lie[2] * j - k], \
            maps[x + Hang[3] * j - k][y + Lie[3] * j], maps[x + Hang[0] * j][y + Lie[0] * j + k],

for i in range(n):

for j in range(n):

    print(maps[i][j], end=' ')
print()
2024/2/28 20:41
加载中...