HDU 5344 MZL's xor (多校)[补7月28]
2015-08-04 21:03
363 查看
MZL's xor
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 249 Accepted Submission(s): 187
[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
[align=left]Source[/align]
2015 Multi-University Training Contest 5
[align=left]Recommend[/align]
wange2014 | We have carefully selected several similar problems for you: 5352 5351 5350 5349 5348
题意理解了半天,他说要把所有的(Ai+Aj)拿来异或,Ai+Aj和Aj+Ai都算的,所以只要i和j
不一样,(Ai+Aj)XOR(Aj+Ai)一定是0,这些都不用考虑了,只有i=j的才考虑,所以把所有的Ai拿来乘以2,再异或就可以了。
#include<queue> #include<math.h> #include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; #define N 1234567 #define M 1234 long long a ; long long b ; int ma,n,num; int main() { a[1]=0; int t;cin>>t; while(t--) { int n,m,z,l; scanf("%d%d%d%d",&n,&m,&z,&l); for(int i=2;i<=n;i++) a[i]=(a[i-1]*m+z)%l; int c=a[1]*2; for(int i=1;i<=n;i++) { c=c^a[i]*2; } printf("%d\n",c); } return 0; }
相关文章推荐
- Windows Socket网络编程——第二章 Windows Socket概念
- HDOJ 4707 Pet (并查集)
- runtime机制基础
- HD 1789 Doing Homework again【贪心】
- JVM致命错误日志(hs_err_pid.log)解读
- java基础总结——内部类
- LoadRunner监控Linux的步骤
- BFS(两点搜索) UVA 11624 Fire!
- ios字符串自适应rect
- 黑马程序员--java基础--异常
- [转]树链剖分资料
- UVA 409 Excuses, Excuses!
- 第六篇T语言实例开发,多点找色应用
- BIM建筑信息模型(Building Information Modeling)
- Java中的getResourceAsStream方法
- D2
- Scala 深入浅出实战经典 第48讲:Scala类型约束代码实战及其在Spark中的应用源码解析
- Redis高可用开源缓存集群方案--总结自网络
- Qt4过渡至Qt5
- Android repo sync能否指定目录,貌似没找到解决方案?