首页 > 编程语言 >打卡信奥刷题(056)用C++工具信奥P10566[普及组/提高] 「Daily OI Round 4」Analysis

打卡信奥刷题(056)用C++工具信奥P10566[普及组/提高] 「Daily OI Round 4」Analysis

时间:2024-10-16 16:52:19浏览次数:8  
标签:10 信奥 OI 样例 len 90 打卡 ASCII 97

「Daily OI Round 4」Analysis

题目描述

小 C 的信息技术老师给小 C 布置了一项作业,作业内容如下:

有一个字符串,包含大小写字母和数字。你可以把任意一个字符变成另外一个字符,设变化之前字符的 ASCII 码为 a a a,变化之后字符的 ASCII 码为 b b b,则这次变化消耗 ∣ a − b ∣ |a-b| ∣a−b∣ 的时间。你需要把整个字符串变成只包含大写字母的字符串。

小 C 还有语文数学英语等很多其他重要作业要做,为了节省时间,你需要计算小 C 最少需要多久才能令字符串只包含大写字母。

输入格式

一行一个字符串 s s s 表示老师给的字符串。

输出格式

一行一个非负整数 t t t,表示令字符串只包含大写字母最少花费多少时间。

样例 #1

样例输入 #1

AA0aa

样例输出 #1

31

样例 #2

样例输入 #2

3kyOu

样例输出 #2

89

提示

【样例解释】

对于第一组样例,最好的办法是变成 AAAZZ \texttt{AAAZZ} AAAZZ,这样的话消耗就为 0 + 0 + ∣ 48 − 65 ∣ + ∣ 97 − 90 ∣ + ∣ 97 − 90 ∣ = 31 0+0+|48-65|+|97-90|+|97-90|=31 0+0+∣48−65∣+∣97−90∣+∣97−90∣=31,容易证明不存在更优的解法。

其中 48 48 48 是字符 0 \texttt{0} 0 的 ASCII 码, 65 65 65 是字符 A \texttt{A} A 的 ASCII 码, 90 90 90 是字符 Z \texttt{Z} Z 的 ASCII 码, 97 97 97 是字符 a \texttt{a} a 的 ASCII 码。

【数据范围】

本题开启捆绑测试。

设 l e n len len 为字符串 s s s 的长度。

Subtask \text{Subtask} Subtask分值 l e n ≤ len \le len≤
0 0 0 10 10 10 3 3 3
1 1 1 30 30 30 10 10 10
2 2 2 60 60 60 1 0 5 10^5 105

对于全部数据,保证: 1 ≤ l e n ≤ 1 0 5 1 \le len \le 10^5 1≤len≤105,且 s s s 中只包含大小写字母和数字。

C++实现

#include
#include
#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;
}
在这里插入图片描述

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP C++考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容

标签:10,信奥,OI,样例,len,90,打卡,ASCII,97
From: https://blog.csdn.net/rogeliu/article/details/142951177

相关文章

  • P1036 [NOIP2002 普及组] 选数
    [NOIP2002普及组]选数题目链接题目描述已知\(n\)个整数\(x_1,x_2,\cdots,x_n\),以及\(1\)个整数\(k\)(\(k<n\))。从\(n\)个整数中任选\(k\)个整数相加,可分别得到一系列的和。例如当\(n=4\),\(k=3\),\(4\)个整数分别为\(3,7,12,19\)时,可得全部的组合与它们的和为:\(3......
  • P1941 NOIP2014 提高组 飞扬的小鸟 题解
    P1941NOIP2014提高组飞扬的小鸟分析背包经典演变问题玩得挺花。设\(f[i][j]\)表示到达\((i,j)\)的时候的最小点击次数。题目中对于每一个\(i\)有两种处理:点击与不点击(重点:点击可以叠加)。所以,对于点击,我们可以像完全背包一样转移,而不点击就按照01背包转移。对于管......
  • [NOI2020] 美食家 题解
    属于是将矩阵快速幂的绝大部分技巧用到了极致的一道题。暴力部分首先我们先考虑一个普通DP。定义\(dp_{t,i}\)表示在时间为\(t\)时到达点\(i\)可以得到的愉悦值之和的最大值。显然有\((i,j)\inE\todp_{t+w,j}=\max(dp_{t,i}+c_j)\)。特判一下当前节点有美食节的情......
  • Android 音频采集/音频播放【AudioTrack、AudioRecord】
    项目中遇到需求,采集音频上传至公司编译的sdk内,播放sdk传递过来的音频,所以自行实现了一个采集音频与播放音频的方法代码:importandroid.Manifestimportandroid.app.Activityimportandroid.content.pm.PackageManagerimportandroid.media.AudioFormatimportandroid.me......
  • P1307 [NOIP2011 普及组] 数字反转
    P1307[NOIP2011普及组]数字反转提交483.96k通过196.21k时间限制1.00s内存限制128.00MB提交答案加入题单做题计划(首页)个人题单团队题单保存题目提供者CCF_NOI难度入门历史分数0 提交记录  查看题解标签NOIp普及组2011 查看算法标签进入讨论版相关讨论......
  • 洛谷题单指南-字符串-P3435 [POI2006] OKR-Periods of Words
    原题链接:https://www.luogu.com.cn/problem/P3435题意解读:定义字符串a是b的周期,当a是b的真前缀,且b是aa的前缀。给定字符串s,求s每一个前缀的最大周期长度之和。解题思路:针对字符串babababa进行样例模拟:前缀子串  最大周期  周期长度b空0ba空0babba2......
  • 南沙C++信奥赛陈老师解一本通题 1943:【08NOIP普及组】排座椅
    ​ 【题目描述】上课的时候总有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情。不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的DD对同学上课时会交头接耳。同学们在教室中坐成了MM行NN列,坐在第ii行第jj列的同学的位置是(i,ji,j......
  • 2024最新最强保活方案,支持android14
    2024年最强Android保活方案分享!区别于常规一像素等方案,本方案即使用户点击强制停止也无法杀死应用,它是基于文件锁、ptrace等黑科技保活技术,直达Android保活尽头。实现App永生。耗电低,不占用CPU,保活持续时间理论上不卸载可达永久。杀不死。安装app后无需打开进程自动启动手机......
  • c++如何使用pthread_join函数配合pthread_create函数来创建和等待线程完成,实现线程同
    在C++中,pthread_create 和 pthread_join 是POSIX线程库(pthread)的一部分,用于创建和管理线程。pthread_create 用于创建一个新的线程,而 pthread_join 用于等待一个线程的执行完成,从而实现线程同步与控制。基本步骤使用 pthread_create 函数创建一个线程。线程的工作由......
  • noip多校联考总结
    noip多校联考总结10.14T1不知道考场在干嘛,打了一个暴力,用了卡时,但是卡时在不同系统下单位不同,还好评测时环境与我本机的相同,clock函数都是以毫秒为单位的,谨记以后要写if(clock()/CLOCKS_PER_SEC>=0.95)break;而不是类似于if(clock()>=950)break;,纯属运气比较好,要是在正式考......