专栏文章

题解: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 条评论,欢迎与作者交流。

正在加载评论...