社区讨论

球球佬们帮忙看看这个代码哪里错了

学术版参与者 2已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@lo131mfa
此快照首次捕获于
2023/10/22 14:23
2 年前
此快照最后确认于
2023/11/02 13:52
2 年前
查看原帖
最近写程序一直这样,自己阅读感觉无比清晰,但是测试的答案乱七八糟
不是洛谷的题,是oj上的熄灯问题,但是实在找不到人问了qwq
PYTHON
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

回复

4 条回复,欢迎继续交流。

正在加载回复...