//2015 Multi-University Training Contest 5;
思路:根据式子可以推出公式为所有值×2的异或和
AC代码:
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int main() { int t; scanf("%d",&t); while(t--) { long long n,m,z,l; scanf("%lld%lld%lld%lld",&n,&m,&z,&l); int i; long long sum=0; long long pre=0; for(i=2;i<=n;i++) { long long now=(pre*m+z)%l; sum^=(2*now); pre=now; } printf("%lld\n",sum); } return 0; }