HDU 5344(MZL's xor-(ai+aj)的异或和)
2024-10-01 15:28:53
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
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
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
(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;
}
最新文章
- 多边形碰撞 -- SAT方法
- LeetCode---Binary Search
- 项目总结笔记系列 Maven Session2
- MSCRM 报表显示 rsprocessingaborted 错误
- mac 显示set a breakpoint in malloc_error_break to debug 终端显示进程已完成怎么办?
- 跟我一起学WCF(1)——MSMQ消息队列
- MySQL类型转换
- Android批量插入数据到SQLite数据库
- PyCharm使用技巧记录(一)如何查看变量
- MyEclipse 10.x中拓展自动提示功能
- java_重写与重载的区别
- ContentType 属性 MIME
- ListView下拉刷新、上拉载入更多之封装改进
- 查看Linux连接数
- 深入理解java虚拟机_第三章(上)----->;垃圾收集器与内存分配策略
- dotnetcore vue+elementUI 前后端分离架二(后端篇)
- urllib爬虫(流程+案例)
- iOS 中的block异常 判断block是否为空
- GOOGLE CODE ANDROID 开源项目 集合
- 应该更新的Java知识之常用程序库
热门文章
- JS中Math函数基础
- Android Touch事件传递机制全面解析(从WMS到View树)
- intellij idea 打开两个 terminal
- Scrapy研究探索(六)——自己主动爬取网页之II(CrawlSpider)
- [Android] Android开发优化之——对界面UI的优化(2)
- Pocket英语语法---五、形式主语是怎么回事
- oracle 11g RAC 的一些基本概念
- CCS+C6678LE开发记录11:多核协作(IPC)入门
- navigator.clipboard 浏览器原生剪贴板
- Codeforces 987C. Three displays(o(n^2))