球球佬们帮忙看看这个代码哪里错了
  • 板块学术版
  • 楼主ERIC_XIE
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/10/14 17:19
  • 上次更新2023/11/2 13:52:37
查看原帖
球球佬们帮忙看看这个代码哪里错了
389915
ERIC_XIE楼主2023/10/14 17:19

最近写程序一直这样,自己阅读感觉无比清晰,但是测试的答案乱七八糟

不是洛谷的题,是oj上的熄灯问题,但是实在找不到人问了qwq

status = []
for i in range(5):
    status.append(list(map(int, input().split())))
for i in range(0, 2 ** 6):
    performed_status = status
    performance = [[0, 0, 0, 0, 0, 0]] * 5
    performance[0] = [0] * (6 - len([int(x) for x in bin(i)[2:]])) + [int(x) for x in bin(i)[2:]]
    for j in range(4):
        for k in range(6):
            if performance[j][k]:  # perform the transform
                if j > 0:performed_status[j - 1][k] = (performed_status[j - 1][k] + 1) % 2
                if k > 0:performed_status[j][k - 1] = (performed_status[j][k - 1] + 1) % 2
                if k < 5:performed_status[j][k + 1] = (performed_status[j][k + 1] + 1) % 2
                performed_status[j + 1][k] = (performed_status[j + 1][k] + 1) % 2
        performance[j + 1] = performed_status[j]  # update performance
    for k in range(6):
        if performance[4][k]:
            if k > 0: performed_status[4][k - 1] = (performed_status[j][k - 1] + 1) % 2
            if k < 5: performed_status[4][k + 1] = (performed_status[j][k + 1] + 1) % 2
    if performed_status[4] == [0, 0, 0, 0, 0, 0]:
        for ans_1 in performance:
            for ans_2 in ans_1:
                print(ans_2,end=' ')
            print()
        break

图片可能不方便佬们看,直接贴链接: 熄灯问题-OJ

2023/10/14 17:19
加载中...