P11384 [POI 2024/2025 R1] Usuwanie 题解

· · 题解

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

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

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

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

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

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

所以汇总代码就出来了。

#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 记录。