Sum of xor jdoj-2160

    题目大意:给你一个n,求1^2^...^n。

    注释:$n<=10^{18}$。

      想法:第一道异或的题。先来介绍一下什么是异或。a^b表示分别将两个数变成二进制后,从左到右按位取异或。两个异或字符,相同为0,不同为1。接下来,我们来证明异或的一些性质。

        1.异或单位独立性。两个数的二进制,如果位数不够按位补全。我们显然可以证明,每一位上的异或显然独立的。

        2.a^0=a,a^a=0。显然。

        3.异或交换律。我们对于三个数来进行考虑。不妨设为a,b,c。我们只需证明a^b^c=a^(b^c)。显然,对于三个数的每一位来讲,必定有两个数相等(鸽巢原理)。所以,只剩下另一个数。如果相等的两个数是0,或1,我们都可以借助异或的第一条性质进行言简意赅的证明。

        4.异或的诡异性质。任意的a属于$N^+$,都有4a^(4a+1)^(4a+2)^(4a+3)=0。有第一条即可证明。这是显然的,因为这四个数的除去最后两位都是一样的,有第一条性质,在前面去异或的时候都是0。然后,再有第2条性质,就可以证明。

        异或的应用:假设有一段序列。所有的数都出现了两次,只有一个数出现了一次。全取异或,由第二条性质,证毕。

        然后,关于这道题,我们发现,由第4条性质和第二条性质的前半部分,我们可以将这个异或和转化为不大于n的4的倍数到n的异或和。显然,迎刃而解。

      最后,附上丑陋的代码... ...

 #include <iostream>
#include <cstdio>
typedef long long ll;
using namespace std;
int main()
{
ll n;
scanf("%lld",&n);
ll ans=;
for(ll i=n/*;i<=n;i++)
{
ans^=i;
}
printf("%lld\n",ans);
return ;
}

    小结:既然n是long long那么i也必须是long long。

Sum of xor的更多相关文章

  1. UVALive8518 Sum of xor sum

    题目链接:https://vjudge.net/problem/UVALive-8518 题目大意: 给定一个长度为 $N$ 的数字序列 $A$,进行 $Q$ 次询问,每次询问 $[L,R]$,需要回 ...

  2. SOJ 4309 Sum of xor 异或/思维

    Source ftiasch 解题思路: 本题的题解有参考这里,但是那篇年代太久远,讲的也不甚清晰,所以可能会对很多新手造成困扰,所以又写了这一篇. 亦或有很多规律,本题使用到的是n^(n+1)=1, ...

  3. Sum vs XOR

    https://www.hackerrank.com/contests/hourrank-13/challenges/arthur-and-coprimes 要求找出所有x <= n   x + ...

  4. AtCoder ABC 129E Sum Equals Xor

    题目链接:https://atcoder.jp/contests/abc129/tasks/abc129_e 题目大意 给定一个二进制表示的数 L,问有多少对自然数 (a, b) 满足 $a + b ...

  5. Codeforces Round #365 (Div. 2) D. Mishka and Interesting sum (离线树状数组+前缀xor)

    题目链接:http://codeforces.com/contest/703/problem/D 给你n个数,m次查询,每次查询问你l到r之间出现偶数次的数字xor和是多少. 我们可以先预处理前缀和X ...

  6. [USACO]6.1.3 cow xor(二进制+Trie)

    题意:给你一个序列(n<=100000),求出一个连续的子序列[i,j]使得ai xor ai+1 xor…… xor aj最大,求出这个最大值(其中每个数<=2^21) 分析:题目和求一 ...

  7. codeforces 242E. XOR on Segment 线段树

    题目链接 给n个数, 两种操作, 一种是求区间内的数的和, 一种是将区间内的数异或x. 异或x没有什么思路, 单个异或肯定超时, 区间异或也没有办法做....后来才知道可以按位建线段树, 这样建20棵 ...

  8. ACDream - Xor pairs

    先上题目: Xor pairs Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Sub ...

  9. HDU 3397 Sequence operation

    题目:下列操作 Change operations:0 a b change all characters into '0's in [a , b]1 a b change all character ...

随机推荐

  1. dojo表格内容居左、居中和居右

    1.常规表格内容居左.居中和居右 style="text-align:left;" style="text-align:center;" style=" ...

  2. Caused by: java.lang.NoClassDefFoundError: org/springframework/web/context/WebApplicationContext

    1.错误描述 严重: A child container failed during start java.util.concurrent.ExecutionException: org.apache ...

  3. java.lang.UnsupportedClassVersionError: Bad version number in .class file (unable to load class org.

    1.错误描述 严重: Exception starting filter struts2 java.lang.UnsupportedClassVersionError: Bad version num ...

  4. 关于工作中Git相关的总结

    来公司一周多,主要是在熟悉各种环境和流程,而作为研发来讲,git的使用也是必不可少的.以前使用方式单一,几个人对着master,pull和push,来了之后发现其实在日常的开发中,git可以很方便的帮 ...

  5. jQuery框架-2.jQuery操作DOM节点与jQuery.ajax方法

    一.jQuery操作DOM 内部插入操作: append(content|fn):向每个匹配的元素内部追加内容. prepend(content):向每个匹配的元素内部前置内容. 外部插入操作: af ...

  6. 【BZOJ1087】【SCOI2005】互不侵犯(状态压缩,动态规划)

    题面 这种傻逼题懒得粘贴了... 题解 傻逼题 \(f[i][j][k]\)表示当前第\(i\)列,当前放置状态为\(j\),已经放了\(k\)个 暴力判断状态合法性,暴力判断转移合法性,然后统计答案 ...

  7. Git基本命令 -- 创建Git项目

    在这里下载git:https://git-scm.com/ 安装的时候, 如果是windows系统的话, 可以勾选unix的命令行工具, 这样在windows命令行下会多出很多命令, 例如ls. Gi ...

  8. linux系统文件扩展名介绍

    1.源码tar.tar.gz .tgz.zip.tar.bz 表示压缩文件,创建命令等 2.sh表示shell脚本文件,通过shell语言开发的程序. 3.pl 表示perl语言文件,通过perl语言 ...

  9. Java interview questions(No1)

    1.什么是构造和析构方法?功能是? 答: 构造方法: 每个类至少有一个构造方法,类初始化时调用的方法 1.方法名和类名相同 2.无返回值类型 格式:访问权限 类名(参数列表) {}; 1.自己定义构造 ...

  10. 百度在线编辑器 - PHP获取提交的数据

    原文:http://www.upwqy.com/details/14.html 1 我们知道在在百度在线编辑器的demo中. 我们只要在body 里面 加载 script 标签 id="ed ...