萌新求教!wrong answer和超时/超内存
查看原帖
萌新求教!wrong answer和超时/超内存
435421
Aslan_warrior楼主2022/7/20 22:44
n=int(input())
a=list(map(int,input().split()))
t=0
te=0
tg=0
ans=0
d={}
for i in range(1,2**n):
    g=i^(i//2)
    l=len(bin(t^g))-2
    te^=a[l-1]
    ans^=(g*te)
    t=g
print(ans)
# 这里把数字转化为格雷码,然后每个数要乘的异或和为上一个数的异或和再乘以一个数。

根据上一个数和下一个数的异或结果判断是哪一位不同,因为异或是自逆的,所以再乘以这个数就行了。我自己测试的时候没问题,但是子任务0显示错误,其他的要么超时要么超内存

2022/7/20 22:44
加载中...