1 条题解

  • 0
    @ 2025-8-24 22:59:14

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar cute_overmind
    坐标:广州lz六中

    搬运于2025-08-24 22:59:14,当前版本为作者最后更新于2024-06-03 13:24:00,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    题目传送门

    题目大意

    给定一个字符串 ss,现在要将这个字符串变成只有大写字母的字符串。

    设变换前的字符 ASCII 码为 aa,变换后的 ASCII 码为 bb。每一次变换的时间 ttab|a-b|。求 tt 的最小值。

    题目分析

    考虑暴力枚举。

    我们可以先定义一个字符串的长度 nn,然后再进行暴力枚举。

    我们可以分成两类进行讨论:

    • 当字符 si64s_i \le 64 时,此时最小值为 t=65sit = 65 - s_i
    • 当字符 si91s_i \ge 91 时,此时最小值为 t=si90t = s_i - 90

    所以即得最后答案 tt

    代码

    #include <bits/stdc++.h>
    using namespace std;
    string s;
    int n , t;
    int main()
    {
    	cin >> s; 
    	n = s.length();
    	for(int i = 0;i < n;i++){
    		if(s[i] > 'Z') t += s[i] - 'Z';
    		if(s[i] < 'A') t += 'A' - s[i];
    	}
    	cout << t;
    	return 0;
     } 
    
    • 1

    信息

    ID
    8950
    时间
    1000ms
    内存
    512MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者