Codeforecs 424C Magic Formulas 规律+前缀和
来源:互联网 发布:linux ps aux 编辑:程序博客网 时间:2024/06/05 08:39
点击打开链接
^异或符号
题意 给出n个数,n<=1e6,pi<=2e9,另qi=pi^(imod1)^(imod2)^...^(imodn) Q=q1^q2^...^qn 求Q?
异或满足交换律和消去率
i mod k (i=1,2...n) = 1 ^2^3..^k-1^0 ^1^2^.....k-1^0,...
若有余数,r=n%k 总共有b=n/k+1组,
若组数为偶数,则前面每组两两异或为0 ,最后有余数一组的值为 1^2^3..^r
若组数为奇数 则前面每组两两异或为0,剩下1^...k-1 1^....r 得r+1^...k-1 用前缀和f[r]保存1~r的异或值即可
#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N=2e6+20;//^异或符号 //qi=pi^(imod1)^(imod2)^...^(imodn)//Q=q1^q2^...^qnll n,a[N];ll p[N];//p[i] 异或前缀 int main(){p[0]=0;for(int i=1;i<=1e6;i++)p[i]=p[i-1]^i;while(cin>>n){for(int i=1;i<=n;i++)scanf("%I64d",&a[i]);ll ans=0;//(i modk) i=1~nfor(int k=2;k<=n;k++){ll b=n/k;//能分成b组ll r=n%k;if(r==0&&b%2==0)continue;if(b%2==0)ans=ans^p[r];elseans=ans^p[r]^p[k-1];//最后两组//cout<<ans<<' '; }for(int i=1;i<=n;i++)ans^=a[i];cout<<ans<<endl;}return 0;}
0 0
- Codeforecs 424C Magic Formulas 规律+前缀和
- Codeforce 424C Magic Formulas 找规律
- codeforces 424C. Magic Formulas (异或规律)
- CF 424C Magic Formulas
- Codeforces 424 C. Magic Formulas
- CF 424C Magic Formulas
- Codeforces 424 C Magic Formulas
- CodeForces 424C Magic Formulas
- CodeForce 424C Magic Formulas
- codeforces 424C Magic Formulas
- Codeforces 424C Magic Formulas
- CodeForce 424C Magic Formulas(数学题)
- Codeforces 424C Magic Formulas(异或应用)
- Magic Formulas
- CF 243 C. Magic Formulas(位运算)
- Codeforces Round #242 (Div. 2) C. Magic Formulas
- CF#243 C. Magic Formulas- xor异或运算 / 数学
- CF Magic Formulas (XOR运算)
- ffmpeg循环推流方法
- java环境配置
- 移植u-boot到stm32f407
- 实验楼 Shell
- c语言基础之const
- Codeforecs 424C Magic Formulas 规律+前缀和
- docker-compose中的环境变量
- SQL MIN() 函数
- SQL Server 入门学习总结---进阶篇
- 带有min函数的栈
- Android中两种序列化方式的比较Serializable和Parcelable
- Oracle 隐含参数查询
- 正确使用搜索引擎
- mapreduce系列(7)--查找共同好友