Magic Formulas
来源:互联网 发布:授权回调域名出错 编辑:程序博客网 时间:2024/05/17 17:59
题意:给出一个式子,求出它的值,用的是异或运算。
方法:因为异或运算是可以交换的,所以可以将Q的表达式改成p1^p2^...^pn^(1 mod 1)^(2 mod 1)^...^(1 mod 2)^(2 mod 2).....
可以发现模2 的余数的特点是1,0,1,0.。。。模3 的余数的特点是1,2,0,1,2,0.。。。所以可以用d[i]=1^2^...^(i-1)^0,d[i+1]=d[i]^i;
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define M 1000010using namespace std;int d[M],n,pp;int main(){ int i,mm; while(scanf("%d",&n)!=EOF) { mm=0; for(i=1;i<=n;i++) { scanf("%d",&pp); mm=mm^pp; } d[1]=0; for(i=2;i<=n;i++) d[i]=d[i-1]^(i-1); for(i=1;i<=n;i++) { int qq=n/i; int rr=n%i; //如果qq是偶数,由于a^a=0,所以mm不变 if(rr==0&&qq%2!=0) mm=mm^d[i]; //当有余数的时候,要注意是把0也当成循环体的一部分,但余数部分一定不含有0,所以是和d[rr+1]做异或运算 if(rr!=0&&qq%2==0) mm=mm^d[rr+1]; if(rr!=0&&qq%2!=0) mm=mm^d[rr+1]^d[i]; } printf("%d\n",mm); } return 0;}
0 0
- Magic Formulas
- CF 424C Magic Formulas
- Codeforces 424 C. Magic Formulas
- CF 424C Magic Formulas
- CF Magic Formulas (XOR运算)
- 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 Round242 div1A&div2C Magic Formulas
- CodeForce 424C Magic Formulas(数学题)
- CF 243 C. Magic Formulas(位运算)
- Codeforces Round #242 (Div. 2) C. Magic Formulas
- Codeforces 424C Magic Formulas(异或应用)
- codeforces 424C. Magic Formulas (异或规律)
- CF#243 C. Magic Formulas- xor异或运算 / 数学
- 物理库与内存库
- c 中的scanf, gets,fgets
- failed to lazily initialize a collection of role: com.bean.User.activities, could not initialize pro
- java解释样式表(配合jsoup使用过滤 expression等xss)
- HDU - 4497 GCD and LCM
- Magic Formulas
- openjweb部署阿里云ECS服务器注意事项
- 初入iBatis
- 爱的一种解释
- 2014.4.25 了解下Arm11
- 文章1984年6月26日出生于陕西省西安市
- iOS 根据 crash 崩溃 报告的内存地址定位到代码位置
- hdu 1257
- (每日一java)ComputeAreaWithConsoleInput