HDOJ-----5344---MZL's xor---思维
来源:互联网 发布:it到dt是什么意思 编辑:程序博客网 时间:2024/06/10 06:46
MZL's xor
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1279 Accepted Submission(s): 795
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 asB1 xor B2 ...xorBn
The xor of an array B is defined as
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
Each test case contains four integers:
Output
For every test.print the answer.
Sample Input
23 5 5 76 8 8 9
Sample Output
1416
A1 A2
A1 1 2
A2 2 3
首先考虑上面这个表的性质,对角线两侧完全对称即会出现(A1+A2)^(A2+A1)
考虑异或的性质,二进制位相同为0,不同为1,a^a = 0
所以求所有的(Ai+Aj)^(Ap+Aq),对角线两侧对称,全部抵消为0,最终是求对角线(Ai+Ai)^(A(i+1)+A(i+1))^ …… ^(An+An)
最终即2*(Ai ^ …… ^ An)
#include<cstdio>#include<iostream>#include<cstring>#define LL long longusing namespace std;int main(){int t, n, m, z, l;cin >> t;while(t--){cin >> n >> m >> z >> l;LL a, ans;ans = a = 0;for(int i = 0; i < n; i++){ans ^= a;a = (a*m+z)%l;}cout << 2*ans << endl;}return 0;}
0 0
- HDOJ-----5344---MZL's xor---思维
- HDOJ 5344 MZL's xor 【math】
- 其他-HDOJ-5344-MZL's xor
- hdoj MZL's xor 5344 (异或)
- hdoj 5344 MZL's xor (简单异或)
- HDU 5344 MZL's xor
- HDU 5344 MZL's xor
- hdu 5344 MZL's xor
- hdu 5344 MZL's xor
- HDU 5344 MZL's xor
- Hdu-5344 MZL's xor
- HDU 5344 MZL's xor
- HDU 5344 多校赛1002 MZL's xor
- hdu 5344 MZL's xor(水)
- HDU 5344 MZL's xor(水题)
- Hdu 5344 MZL's xor (杂)
- 【HDU 5344 MZL's xor】+ 异或
- hdoj 5433 MZL's xor ( 异或性质)
- [笔记]算法复习笔记---数组、集合、散列表(下)
- MySql 8小时解决方案:proxool连接池
- 深度学习之caffe入门——caffe环境的配置(CPU ONLY)
- MYSQL命令行大全
- Linux内存访问(Liunx驱动3)
- HDOJ-----5344---MZL's xor---思维
- Lucene初探之数据格式详情(六)
- c语言框架总结
- Django 1.10中文文档:概览
- Android基础——WebView
- static关键字的作用
- C#--GUID生成与应用资源整理
- Visual Studio 20周年软件趋势随想
- java学习第十三天多线程的死锁和并发