1 条题解

  • 0
    @ 2026-9-23 20:16:41

    题目传送门:P11384 [POI 2024/2025 R1] Usuwanie

    首先,奇数加奇数得偶数,偶数加偶数得偶数,奇数相邻的是偶数,偶数相邻的是奇数。

    发现对于相邻的整数 (a,a+1,a+2,a+3)(a,a+1,a+2,a+3),(a,a+2)(a,a+2)、(a+1,a+3)(a+1,a+3) 可以两两消掉,于是当整个序列的元素数量 s=b−a+1s=b-a+1 是 44 的倍数的时候,全部的元素都能消除。

    如果模 44 得 11,那么最后剩下的一个就消不了。

    如果模 44 得 22,我们悲伤地发现最后两个元素之和为奇数,所以都会剩下。

    如果模 44 得 33,那么倒数第三个和最后一个可以消,倒数第二个会剩下,答案还是只剩下一个。

    所以汇总代码就出来了。

    #include<iostream>
    using namespace std;
    long long a,b,ans;
    int main(){
        cin>>a>>b;
        long long s=b-a+1;
        if(s%4==0)ans=s;
        else if(s%4==1)ans=s-1;
        else if(s%4==2)ans=s-2;
        else ans=s-1;
        cout<<ans;
        return 0;
    }
    

    AC 记录。

    • 1

    信息

    ID
    3375
    时间
    600ms
    内存
    128MiB
    难度
    10
    标签
    递交数
    5
    已通过
    4
    上传者