码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 5344 多个数的和异或-思维-(位运算)

时间:2015-08-06 02:06:15      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:hdu

题意:n个数的两两做和,然后异或

分析:

异或的性质:两个相同的数异或为0,所以Ai+Aj异或Aj+Ai等于0,所以最终结果就是Ai+Ai的异或

代码:

#include<stdio.h>
long long t,n,m,z,l;
long long a[1000005];
int main()
{
    scanf("%I64d",&t);
    while(t--){
        scanf("%I64d%I64d%I64d%I64d",&n,&m,&z,&l);
        a[1]=0;
        long long ans=0;
        long long i;
        for(i=2;i<=n;i++){
            a[i]=(a[i-1]*m+z)%l;
            ans^=(a[i]*2);
        }
        printf("%I64d\n",ans);
    }
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

HDU 5344 多个数的和异或-思维-(位运算)

标签:hdu

原文地址:http://blog.csdn.net/ac_0_summer/article/details/47307149

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!