题意:n个数的两两做和,然后异或
分析:
异或的性质:两个相同的数异或为0,所以Ai+Aj异或Aj+Ai等于0,所以最终结果就是Ai+Ai的异或
代码:
?
#includelong long t,n,m,z,l; long long a[1000005]; int main() { scanf(%I64d,&t); while(t--){ scanf(%I64d%I64d%I64d%I64d,&n,&m,&z,&l); a[1]=0; long long ans=0; long long i; for(i=2;i<=n;i++){ a[i]=(a[i-1]*m+z)%l; ans^=(a[i]*2); } printf(%I64d ,ans); } }
?