专栏文章

题解:P13992 【MX-X19-T1】「FeOI Round 4.5」五字神人

P13992题解参与者 1已保存评论 0

文章操作

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

当前评论
0 条
当前快照
1 份
快照标识符
@minyh93c
此快照首次捕获于
2025/12/02 10:25
3 个月前
此快照最后确认于
2025/12/02 10:25
3 个月前
查看原文

传送门

难道是没人写题解嘛,为什么题解这里没有捏,还是题目太简单?,被窝这只小蒟蒻抓住机会力~QWQ

思路:

突破点在于大写字母数量和字符串长度,1,31,3操作是对字符串长度进行更改,2,32,3操作是对大写字母数量更改。
所以我们只需要找出实现两种结果的方法中代价最小的,用cntcnt表示大写字母数量,lengthlength表示字符串长度。
只需判断两者与55相比的波动情况,波动越小,实现的操作数越小,波动值就是最小操作数,取最小将操作数输出即可。

Code:

CPP
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
template<typename T> void re(T&x){x = 0; int sign = 1; char c;do{c = getchar(); if (c == '-') sign = -1;}while(!isdigit(c)); do{x = x * 10 + c - '0'; c = getchar();}while(isdigit(c)); x *= sign;}
void write(int x){if (x < 0) x = -x, putchar('-'); if (x < 10) putchar(x + '0'); else write(x / 10), putchar(x % 10 + '0');}

ll t;

int main(){
	re(t);
	while (t --){
		string s;
		cin >> s;
		ll cnt = 0;
		for (int i = 0;i < s.size(); i ++) if (isupper(s[i])) cnt ++; // 统计大写字母数量
		ll lengths = s.size(); // 存储字符串长度
		ll ans = min(abs(cnt - 5), abs(lengths - 5)); // 取波动值取最小
		printf("%lld\n", ans);
	}
	return 0;
}

Thank you for reading !!\textit{\textbf Thank you for reading !!}

评论

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

正在加载评论...