• 10.18T1 打表


    DLZ耍蛇

    ProblemBackground

    DLZ一到机房,所有Dalao便都看着他笑,有的叫道,“DLZ,你又要耍蛇了!” 他不回答,跑到全班面前,“这是我从印度进口的灵蛇。”便从兜里掏出九条大蛇。他 们又故意的高声嚷道,“你一定又被石锤了!”DLZ睁大眼睛说,“你怎么这样凭空污 人清白……”“什么清白?我前天亲眼见你在LH面前耍蛇,被吊着打。”DLZ便涨红 了脸,额上的青筋条条绽出,争辩道,“耍蛇被打能叫被锤吗……耍蛇!……读书人的事, 能算石锤么?”接连便是难懂的话,什么“苟币LH”,什么“吃土”之类,引得众人 都哄笑起来:机房内外充满了快活的空气。

    Problem Discrioption

    DLZ的蛇可被分为若干段,第i段蛇的灵力为iDLZ使用的是传统耍蛇法,他每 一次耍蛇从LR的一段,耍蛇之后,蛇会减少LR的灵力和。由于某些特殊原因, 灵力是用异或求和的。如果不能及时补充,蛇就挂了,DLZ数学太菜了,为了拯救他的 蛇,他向你求助。

    Input

    两个整数LRL<R

    Output

    一个整数表示LR的灵力和

    SampleInput

    2 7

    SampleInput

    1

    Data Scale

    测试点编号

    数据规模

    1~4

    L,R1e7

    5~7

    R-L1e7

    8~10

    L,r1e18

    记得我前面的博客的ZYH的XOR吗,一个道理

    不过一个结论是[L,R]=[1,R]^[1,L-1]

    然后就O(1)了

    code:

     1 #include<iostream>
     2 #include<cstdio>
     3 using namespace std;
     4 long long cal(long long a){return a%4==1?1:((a%4==2)?a+1:(a%4==0?a:0));}
     5 int main(){
     6     freopen("snake.in","r",stdin);
     7     freopen("snake.out","w",stdout);
     8     long long l,r;cin>>l>>r;
     9     cout<<(cal(r)^cal(l-1));
    10     return 0;
    11 }

    over

  • 相关阅读:
    Fortran编译器之一GUN Fortran安装(Windows XP)
    c++动态绑定的技术实现
    c++标准库比较
    java array
    java常用的基础容器
    mac sublime text 3 add ctags plugin
    git fetch
    查看远程分支的log
    git删除分支
    detached HEAD state
  • 原文地址:https://www.cnblogs.com/saionjisekai/p/9809788.html
Copyright © 2020-2023  润新知