您的位置:首页 > 其它

HDU 5344 多校赛1002 MZL's xor

2015-08-04 16:11 393 查看
[align=left]Problem Description[/align]

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

[align=left]Input[/align]

Multiple test cases, the first line contains an integer T(no more than 20), indicating the number of cases.
Each test case contains four integers:n,m,z,l
A1=0,Ai=(Ai−1∗m+z) mod l
1≤m,z,l≤5∗105,n=5∗105

[align=left]Output[/align]

For every test.print the answer.

[align=left]Sample Input[/align]

2
3 5 5 7
6 8 8 9

[align=left]Sample Output[/align]

14
16

#include <iostream>

using namespace std;

long long a[500001];

int main()
{
int T;
long long n,m,z,l;
while(cin>>T)
{
while(T--)
{
cin>>n>>m>>z>>l;
a[1] = 0;
for(int i=2;i<=n;i++)
{
a[i] = (a[i-1] * m + z) % l;
}
int sum = a[1];
for(int i=2;i<=n;i++)
{
sum ^= a[i]*2;
}
cout<<sum<<endl;
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: