B - MZL's xor -水题-异或操作规律

来源:互联网 发布:lca在线算法 编辑:程序博客网 时间:2024/06/06 14:22
 当i和j不一样。。就会有ai+aj  和aj+ai这样两对。答案就是0

所以最后有效的xor操作  只有 (ai+ai)和aj+aj
注意乘法溢出


#include <cstdio>#include <cmath>#include <cstring>#include <string>#include <algorithm>#include <iostream>#include <queue> #include <set>#include <vector>using namespace std;__int64 f[100000*5+5];int main(){   __int64 t;scanf("%I64d",&t);while(t--){__int64 n,a,b,c,d,i,j; scanf("%I64d%I64d%I64d%I64d",&a,&b,&c,&d);f[1]=0;for (i=2;i<=a;i++){f[i]=(f[i-1]*b+c)%d;}__int64 sum=0;for (i=1;i<=a;i++){  sum=sum^(f[i] ); }printf("%I64d\n",2*sum);}return 0;}


0 0