标签:
2 3 5 5 7 6 8 8 9
14 16
#include<iostream> #include<algorithm> #include<stdio.h> #include<string.h> #include<stdlib.h> #include<string> #include<math.h> #include<queue> #include<stack> #include<map> #define INF 0x3f3f3f3f #define eps 1e-6 using namespace std; int n,m,z,l; int v[500015]; __int64 a[500015]; int b[500015]; int main() { int T; scanf("%d",&T); while(T--) { scanf("%d%d%d%d",&n,&m,&z,&l); memset(v,0,sizeof(v)); v[0] = 1; a[0] = 1; int ph,pi; int i; int flag = 0; m = m%l; z = z%l; for(i=2;i<=n;i++) { a[i] = ((a[i-1]*m)+z)%l; //printf("a[%d] = %d\n",i,a[i]); v[a[i]]++; } int k = 1; for(int i=1;i<=n;i++) { if(v[a[i]]%2 == 1) { b[k] = a[i]; v[a[i]] = 0; k++; } } __int64 sum = 0; __int64 sum1 = 0; for(int i=1;i<k;i++) { sum = b[i] + b[i]; sum1^=sum; } printf("%I64d\n",sum1); } return 0; }
版权声明:本文为博主原创文章,如有特殊需要请与博主联系 QQ : 793977586。
标签:
原文地址:http://blog.csdn.net/yeguxin/article/details/47297445