1 条题解
-
0
自动搬运
来自洛谷,原作者为

LegendaryGrandmaster
来也匆匆,去也冲冲搬运于
2025-08-24 22:44:34,当前版本为作者最后更新于2023-02-04 17:23:48,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
首先字符串至少要有 3 位,没有直接输出 -1。
我们三位三位模拟取最小值,只要中间是
O,都可以变成MOO。操作次数如下:
MOO:0 次。MOM:1 次。OOO:1 次。OOM:2 次。
最终取最小值加上总长度 -3 即可。因为最终只能保留 3 位。如果 仍是初始值,那么输出 -1。
#include<bits/stdc++.h> using namespace std; signed main() { int t; cin>>t; while(t--){ int mi=0x3f3f3f3f; string st; cin>>st; if(st.size()<3){ puts("-1"); continue; } for(int i=0;i<st.size()-2;i++){ string str=st.substr(i,3); if(str=="MOO")mi=min(mi,0); else if(str=="MOM")mi=min(mi,1); else if(str=="OOO")mi=min(mi,1); else if(str=="OOM")mi=min(mi,2); } if(mi==0x3f3f3f3f)puts("-1"); else cout<<mi+st.size()-3<<'\n'; } }
- 1
信息
- ID
- 8301
- 时间
- 2000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者