标签:
MZL loves xor very much.Now he gets an array A.The length of A is n.He wants to know the xor of all (Ai+Aj)(1≤i,j≤n)
The xor of an array B is defined as B1 xor B2...xor Bn
/* 根据式子可以推出公式为所有值×2的异或和 */ /************************************************ Author :powatr Created Time :2015-8-5 22:08:30 File Name :b.cpp ************************************************/ #include <cstdio> #include <algorithm> #include <iostream> #include <sstream> #include <cstring> #include <cmath> #include <string> #include <vector> #include <queue> #include <deque> #include <stack> #include <list> #include <map> #include <set> #include <bitset> #include <cstdlib> #include <ctime> using namespace std; #define lson l, mid, rt << 1 #define rson mid + 1, r, rt << 1 | 1 typedef long long ll; const int MAX = 1e6 + 10; const int INF = 0x3f3f3f3f; const int MOD = 1e9 + 7; ll a[MAX]; int main(){ int n, m, z, l; int T; scanf("%d", &T); while(T--){ scanf("%d%d%d%d", &n, &m, &z, &l); a[1] = 0; for(int i = 2; i <= n; i++) a[i] = (a[i-1]*m + z)%l; ll sum = 0; for(int i = 1; i <= n; i++) sum ^= 1ll*(a[i] << 1); printf("%I64d\n", sum); } return 0; }
标签:
原文地址:http://www.cnblogs.com/zero-begin/p/4705998.html