B - MZL's xor

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 ( AiAi+ AjAj)( 1i,jn1≤i,j≤n
The xor of an array B is defined as  B1B1 xor  B2B2...xor  BnBn
InputMultiple test cases, the first line contains an integer T(no more than 20), indicating the number of cases. 
Each test case contains four integers: nn, mm, zz, ll 
A1=0A1=0, Ai=(Ai1m+z)Ai=(Ai−1∗m+z)  modmod  ll 
1m,z,l51051≤m,z,l≤5∗105, n=5105n=5∗105 
OutputFor every test.print the answer.Sample Input
2
3 5 5 7
6 8 8 9
Sample Output
14
16

这题的关键是你要注意到明白xi+xj和xj+xi是不一样的,所以结果就是相同数之和xi+xi之间异或的结果,结果怕溢出就用long long

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
void Cin(Books *abs){ int i = 0; int g; cout<<"添加几个课程?"<<endl; xiuf(&g); if(abs->number + g > 5){ cout<<"太多了,进不去了!!!"<<endl; system("pause"); system("cls"); }else{ for(i=0;i<g;i++){ abs->number++; cout<<"输入课程名字"<<endl; string mzl; cin>>mzl; abs->ClassArray[abs->number].name = mzl; cout<<"输入课程编号"<<endl; string numberl; cin>>numberl; abs->ClassArray[abs->number].number = numberl; cout<<"输入课程性质"<<endl; string forml; cin>>forml; abs->ClassArray[abs->number].form = forml; cout<<"输入课程学分"<<endl; int gradel; xiuf(&gradel); abs->ClassArray[abs->number].grade = gradel; cout<<"输入课程学时"<<endl; int timel; xiuf(&timel); abs->ClassArray[abs->number].time = timel; cout<<"输入课程授课学时"<<endl; int finishtimel; xiuf(&finishtimel); abs->ClassArray[abs->number].finishtime = finishtimel; cout<<"输入课程实验学时"<<endl; int experiencel; xiuf(&experiencel); abs->ClassArray[abs->number].experience = experiencel; cout<<"添加成功"<<endl; abs->ClassArray[abs->number].people = abs->number *10; system("pause"); system("cls"); ofstream out("kc.txt",ios::app);//app表示每次操作前均定位到文件末尾 if(out.fail()){ cout<<"error\n"; } out<<"课程名字:"<<mzl<<endl; out<<"课程编号:"<<numberl<<endl; out<<"课程性质:"<<forml<<endl; out<<"课程学分:"<<gradel<<endl; out<<"课程学时:"<<timel<<endl; out<<"课程授课学时:"<<finishtimel<<endl; out<<"课程实验学时:"<<experiencel<<endl; out.close(); }} }
最新发布
06-13

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值