专栏文章

题解:P12672 「LAOI-8」近期我们注意到有网站混淆视听

P12672题解参与者 3已保存评论 2

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
2 条
当前快照
1 份
快照标识符
@minutjs1
此快照首次捕获于
2025/12/02 08:43
3 个月前
此快照最后确认于
2025/12/02 08:43
3 个月前
查看原文
十分简单的题目。
我们先把 LGMCSP 的个数统计出来,设这两个的出现次数为 aabb
显然,对于所有 LGM,我们只需要进行 a2\left \lceil \dfrac{a}{2} \right \rceil 次操作就可以边消失。
证明很简单,只需要与相邻的其中一个变走就行了。就像 LGMLGMLGMLGMLGM 这种,把第一个 LGM 和第二个 LGM 变,第三个 LGM 和第四个 LGM 变,第五个 LGM 和自己变,就把所有 LGM 变消失了。
因为要最小,所以答案就是 min(a2,b2)\min (\left \lceil \dfrac{a}{2} \right \rceil,\left \lceil \dfrac{b}{2} \right \rceil),这样就做完了。
AC 代码:
CPP
#include <iostream>
#include <cmath>
using namespace std;

signed main()
{
    int _;
    cin>>_;
    while(_--){
        string s;
        cin>>s;
        int a = 0,b = 0;
        for(int i = 0;i<s.length()-2;i++){
            if(s[i]=='L'&&s[i+1]=='G'&&s[i+2]=='R') a++;//统计LGM的个数
            if(s[i]=='C'&&s[i+1]=='S'&&s[i+2]=='P') b++;//统计CSP的个数
        }
        cout<<min(ceil(a*1.0/2),ceil(b*1.0/2))<<endl;//计算答案
    }
    return 0;
}

评论

2 条评论,欢迎与作者交流。

正在加载评论...