专栏文章
题解:P13992 【MX-X19-T1】「FeOI Round 4.5」五字神人
P13992题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @minzp9j1
- 此快照首次捕获于
- 2025/12/02 10:59 3 个月前
- 此快照最后确认于
- 2025/12/02 10:59 3 个月前
思路
对于每个字符串进行分类讨论即可。
代码中有注释可自行理解。
代码
CPP#include <bits/stdc++.h>
#define int long long
using namespace std;
int read()
{
int res = 0,f = 1;
char ch = getchar();
while (ch<'0'||ch>'9') f = (ch=='-'?-1:1),ch = getchar();
while (ch>='0'&&ch<='9') res = (res<<3)+(res<<1)+(ch^48),ch = getchar();
return res*f;
}
void write(int x)
{
if (x<0) putchar('-'),x=-x;
if (x>9) write(x/10);
putchar(x%10+'0');
}
void writech(int x,char ch){write(x),putchar(ch);}
signed main()
{
int T=read();
while (T--)
{
string s;
cin>>s;
int len = s.size();
int b = 0,z = 0;
for (int i = 0; i < len; i++) b+=(s[i]>='A'&&s[i]<='Z');
z=len-b;
//b记录大写字母数,z记录小写字母数
if (s.size()<=4) writech(5-len,'\n');//当长度小于4时n只能执行操作三
else if (b==5) puts("0");
else if (len==5) puts("0");//满足条件直接输出
else
{
int ans1 = len-5;//长度满足
int ans2 = 2e18;//大写字母数满足
if (b>5) ans2=b-5;//多于5个执行操作一
else//多于5个时
{
if (z>=5-b) ans2=5-b;//小写可满足执行操作二
else ans2=2*(5-b-z)+z;//操作三加操作二
}
writech(min(ans1,ans2),'\n');
}
}
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...