Hdu 5344
Posted repulser
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hdu 5344相关的知识,希望对你有一定的参考价值。
Hdu5344
题意:
给你一个数组,求所有的 $ a_i + a_j $ 的异或值。
解法:
因为 $ (a_i+a_j) \bigoplus (a_j + a_i) = 0$ 。
所以答案就是 $ \sum_i=1^n(2*a_i) $
CODE:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define LL long long
LL ans,n,m,l,z,pre,T;
int main()
scanf("%lld",&T);
while(T--)
scanf("%lld%lld%lld%lld",&n,&m,&z,&l);
pre = 0 ,ans = 0;
for(int i = 1 ; i <= n ; i++)
ans ^= pre * 2LL;
pre = (pre * m + z) % l;
printf("%lld\n",ans);
return 0;
以上是关于Hdu 5344的主要内容,如果未能解决你的问题,请参考以下文章