求助

我的这段代码一直卡60%,我的思路和题解上没什么不同,但就是不能AC,想向各位大佬请教代码哪里有问题

def yusuan(door, x):
    for op,t in door:
        if op == "AND":
            x &= t
        elif op == "OR":
            x |= t
        else:
            x ^= t
    return x


n, m = map(int, input().split())
door = [[] for _ in range(n)]
for i in range(n):
    op, t = input().split()
    door[i] = [op, int(t)]
l = len(bin(m)) - 2
b1 = yusuan(door, pow(2, l) - 1)
b0 = yusuan(door, 0)
ans = 0
x0 = 0
for i in range(l - 1, -1, -1):
    b = pow(2, i)
    if b0 & b:
        ans += b
    elif b1 & b and b + x0 <= m:
        ans += b
        x0 += b
print(ans)

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务