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的主要内容,如果未能解决你的问题,请参考以下文章

HDU 3480 Division

hdu-1286 找新朋友(欧拉函数,水题)

Leetcode 5344. 有多少小于当前数字的数字

P5344 XR-1逛森林[倍增优化建图,zkw线段树优化spfa]

杀死进程端口

技术类视频集锦