MZL's xor

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)

Total Submission(s): 800    Accepted Submission(s): 518

Problem Description
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
 
Input
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
 
Output
For every test.print the answer.
 
Sample Input
2
3 5 5 7
6 8 8 9
 
Sample Output
14
16
 
Author
SXYZ
 
Source
 
Recommend
wange2014   |   We have carefully selected several similar problems for you:  5416 5415 5414 5413 5412 
 

(Ai+Aj)^(Aj+Ai)=0 (i≠j)

然后注意开long long 否则 ai*m时会爆

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<functional>
#include<iostream>
#include<cmath>
#include<cctype>
#include<ctime>
using namespace std;
#define For(i,n) for(int i=1;i<=n;i++)
#define Fork(i,k,n) for(int i=k;i<=n;i++)
#define Rep(i,n) for(int i=0;i<n;i++)
#define ForD(i,n) for(int i=n;i;i--)
#define RepD(i,n) for(int i=n;i>=0;i--)
#define Forp(x) for(int p=pre[x];p;p=next[p])
#define Forpiter(x) for(int &p=iter[x];p;p=next[p])
#define Lson (x<<1)
#define Rson ((x<<1)+1)
#define MEM(a) memset(a,0,sizeof(a));
#define MEMI(a) memset(a,127,sizeof(a));
#define MEMi(a) memset(a,128,sizeof(a));
#define INF (2139062143)
#define F (100000007)
#define MAXN (5000000+10)
typedef long long ll;
ll mul(ll a,ll b){return (a*b)%F;}
ll add(ll a,ll b){return (a+b)%F;}
ll sub(ll a,ll b){return (a-b+llabs(a-b)/F*F+F)%F;}
void upd(ll &a,ll b){a=(a%F+b%F)%F;}
ll a[MAXN];
ll n,m,z,l;
int main()
{
// freopen("B.in","r",stdin);
int T;cin>>T;
while(T--)
{
cin>>n>>m>>z>>l;
a[1]=0;
Fork(i,2,n) a[i]=(a[i-1]*m+z)%l;
ll s=0;
For(i,n) s=s^(2*a[i]);
cout<<s<<endl;
} return 0;
}

最新文章

  1. 多边形碰撞 -- SAT方法
  2. LeetCode---Binary Search
  3. 项目总结笔记系列 Maven Session2
  4. MSCRM 报表显示 rsprocessingaborted 错误
  5. mac 显示set a breakpoint in malloc_error_break to debug 终端显示进程已完成怎么办?
  6. 跟我一起学WCF(1)——MSMQ消息队列
  7. MySQL类型转换
  8. Android批量插入数据到SQLite数据库
  9. PyCharm使用技巧记录(一)如何查看变量
  10. MyEclipse 10.x中拓展自动提示功能
  11. java_重写与重载的区别
  12. ContentType 属性 MIME
  13. ListView下拉刷新、上拉载入更多之封装改进
  14. 查看Linux连接数
  15. 深入理解java虚拟机_第三章(上)-----&gt;垃圾收集器与内存分配策略
  16. dotnetcore vue+elementUI 前后端分离架二(后端篇)
  17. urllib爬虫(流程+案例)
  18. iOS 中的block异常 判断block是否为空
  19. GOOGLE CODE ANDROID 开源项目 集合
  20. 应该更新的Java知识之常用程序库

热门文章

  1. JS中Math函数基础
  2. Android Touch事件传递机制全面解析(从WMS到View树)
  3. intellij idea 打开两个 terminal
  4. Scrapy研究探索(六)——自己主动爬取网页之II(CrawlSpider)
  5. [Android] Android开发优化之——对界面UI的优化(2)
  6. Pocket英语语法---五、形式主语是怎么回事
  7. oracle 11g RAC 的一些基本概念
  8. CCS+C6678LE开发记录11:多核协作(IPC)入门
  9. navigator.clipboard 浏览器原生剪贴板
  10. Codeforces 987C. Three displays(o(n^2))