O(n^2),python超时,望accepted赐代码
查看原帖
O(n^2),python超时,望accepted赐代码
1290600
ZhangJianbo820楼主2024/3/4 21:28

源码附上,思路就是按行列遍历

import copy

def clockwise(matrix, x, y, r):
    x = x - 1
    y = y - 1
    temp = copy.deepcopy(matrix)
    for i in range(x-r, x+r+1):
        row = matrix[i]
        row = row[y-r:y+r+1]
        index = 0
        for j in range(x-r, x+r+1):
            temp[j][y-r+x+r-i] = row[index]
            index += 1
    return temp

def counterclockwise(matrix, x, y, r):
    x = x - 1
    y = y - 1
    temp = copy.deepcopy(matrix)
    for i in range(x-r, x+r+1):
        row = matrix[i]
        row = row[y-r:y+r+1]
        index = 2*r
        for j in range(x-r, x+r+1):
            temp[j][y-r+i-(x-r)] = row[index]
            index -= 1
    return temp

n, m = map(int, input().split())
matrix = []
num = 1
for i in range(n):
    row = []
    for j in range(n):
        row.append(num)
        num += 1
    matrix.append(row)
for _ in range(m):
    x, y, r, z = map(int, input().split())
    if z == 0:
        matrix = clockwise(matrix, x, y, r)
    else:
        matrix = counterclockwise(matrix, x, y, r)
for row in matrix:
    print(' '.join(map(str, row)))

希望有用python通过的兄弟们分享一下代码,非常感谢。

因为要用python参加一个比赛,所以非python不可。

另外,请问洛谷不管是什么语言都是同一个时间限制吗?

2024/3/4 21:28
加载中...