码迷,mamicode.com
首页 > 其他好文 > 详细

XOR_SUM

时间:2020-01-12 18:32:14      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:ace   com   code   acm   c++   out   题解   test   区间   

XOR_SUM

题意:求区间\([L,R]\)之间的连续异或和。

链接:xor_sum

题解:打表找规律,规律当结论记住。

\[ 0\bigoplus1=1 \]

\[ 0\bigoplus1\bigoplus2=3 \]

\[ 0\bigoplus1\bigoplus2\bigoplus3=0 \]

\[ 0\bigoplus1\bigoplus2\bigoplus3\bigoplus4=4 \]

\[ 0\bigoplus1\bigoplus2\bigoplus3\bigoplus4\bigoplus5=1 \]

\[ 0\bigoplus1\bigoplus2\bigoplus3\bigoplus4\bigoplus5\bigoplus6=7 \]

\[ 0\bigoplus1\bigoplus2\bigoplus3\bigoplus4\bigoplus5\bigoplus6\bigoplus7=0 \]

\[ 0\bigoplus1\bigoplus2\bigoplus3\bigoplus4\bigoplus5\bigoplus6\bigoplus7\bigoplus8=8 \]

很明显:4个数一循环,1,n+1,0,n
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll f(ll n){
    if(n%4==0)
        return n;
    else if(n%4==1)
        return 1;
    else if(n%4==2)
        return n+1;
    else if(n%4==3)
        return 0;
}
int main(void){
    ll l,r;
    cin >> l >> r;
    cout<<(f(l-1)^f(r))<<endl;
    return 0;
} 

XOR_SUM

标签:ace   com   code   acm   c++   out   题解   test   区间   

原文地址:https://www.cnblogs.com/AC-AC/p/12183078.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!