NC54559. XOR sum
描述
输入描述
The input contain two integers l ,r (1 ≤ l ≤ r ≤1018)
输出描述
The only output line should contain a single integer
示例1
输入:
1 2
输出:
3
说明:
1⊕2=3示例2
输入:
3 6
输出:
4
说明:
3⊕4⊕5⊕6=4C++14(g++5.4) 解法, 执行用时: 3ms, 内存消耗: 492K, 提交时间: 2020-01-11 12:27:20
#include<bits/stdc++.h> #define ll long long using namespace std; ll vec[100000]; int main(){ ll a,b,t; scanf("%lld%lld",&a,&b); t=a*(a&1)^b*!(b&1)^!!(((a^b)+1)&2); printf("%lld\n",t); return 0; }
C++11(clang++ 3.9) 解法, 执行用时: 3ms, 内存消耗: 608K, 提交时间: 2020-02-25 15:47:59
#include<stdio.h> int main() { long long a,b,ans; scanf("%lld%lld",&a,&b); ans=a*(a&1)^b*!(b&1)^!!(((a^b)+1)&2); printf("%lld\n",ans); }
Python3(3.5.2) 解法, 执行用时: 25ms, 内存消耗: 3436K, 提交时间: 2020-01-11 12:17:10
n,m=map(int,input().split()) t=n-1&3 tt=m&3 print((1 if t&1 else n-1)^t//2^(1 if tt&1 else m)^tt//2)