HDU 2577 How to Type DP也可以模拟

智算中心建设全流程指南:从规划到落地 智算中心的建设是一个复杂而系统的过程,涉及选址、立项、办理相关手续、设计、土建、机电安装、调试、验收等多个环节。每个环节都需要充分考虑各种因素,并注意相关的事项,以确保智算中心的顺利建设和高效运行 阅读详情

http://acm.hdu.edu.cn/showproblem.php?pid=2577

大意:

大家都打过字吧,现在有个有趣的问题:给你一串字符串,有大写有小写,要求你按键次数最少来输出它,输出按键次数。

大写字母可以通过caps lock 也可以用shift得到,小写也是。

但是起始状态和最后caps lock都是不锁定的。

求最少的按键次数。


思路:


不用DP的方法:

当有连续的大写或者小写用caps lock 键,否则用shift。

#include<cstdio>
#include<cstring>
const int MAXN=110;
int main()
{
	int T;
	scanf("%d",&T);

	while(T--)
	{
		char a[MAXN];
		scanf("%s",a);
		int len=strlen(a);
		bool capslock=false;
		int cnt=0;
		for(int i=0;i<len;i++)
		{
			if(a[i] >= 'A' && a[i] <= 'Z')
			{
				if(capslock==false)
					cnt++;    //shift or capslock

				if(a[i+1]>= 'A' && a[i+1] <= 'Z')
						capslock=true;			
				cnt++;
			}
			else 
			{
				if(capslock==true)
					cnt++;    //shift or capslock
				if(a[i+1]>= 'a' && a[i+1] <= 'z' ||a[i+1]=='\0') //a[i+1]=='\0'必须加,这也就是模拟wa原因
						capslock=false;
				cnt++;
			}
		}
		if(capslock)
			cnt++;
		printf("%d\n",cnt);

	}
	return 0;
}


DP的方法

设lock[i]为敲完第i个之后为锁定状态,而notlock[i]为敲完第i个之后为没有锁定状态

则分大小写讨论:

a[i]若为大写:

lock[i]=min(lock[i-1]+1,notlock[i-1]+2);
notlock[i]=min(lock[i-1]+2,notlock[i-1]+2);

否则:

lock[i]=min(lock[i-1]+2,notlock[i-1]+2);
notlock[i]=min(lock[i-1]+2,notlock[i-1]+1);

至于怎么来的,你敲一下键盘你就懂了

还有就是最后要变成没有锁定状态。。

#include<cstdio>
#include<cstring>
#include<cctype>
#include<algorithm>
using namespace std;
const int MAXN=110;
int main()
{
	int T;
	scanf("%d",&T);

	while(T--)
	{
		char a[MAXN];
		int lock[MAXN]={0};
		int notlock[MAXN]={0};
		scanf("%s",a);
		int len=strlen(a);
		if(isupper(a[0]))
		{
			lock[0]=2;
			notlock[0]=2;
		}
		else
		{
			lock[0]=2;
			notlock[0]=1;
		}

		for(int i=1;i<len;i++)
		{
			if(isupper(a[i]))
			{
				lock[i]=min(lock[i-1]+1,notlock[i-1]+2);
				notlock[i]=min(lock[i-1]+2,notlock[i-1]+2);
			}
			else //小写
			{
				lock[i]=min(lock[i-1]+2,notlock[i-1]+2);
				notlock[i]=min(lock[i-1]+2,notlock[i-1]+1);
			}
		}
		
		printf("%d\n",min(notlock[len-1],lock[len-1]+1)); //最后要变成没有锁定的

	}
	return 0;
}


torch_npu 用法笔记 阅读详情

相关推荐

C# WinForms实战:5分钟用ScottPlot打造专业级示波器界面(附完整代码)

本文详细介绍了如何在C# WinForms应用中,利用ScottPlot.WinForms库快速构建一个专业级的软件示波器界面。通过从环境配置、静态波形绘制到动态数据实时更新的完整实战演示,帮助开发者高效实现高性能的波形显示功能,适用于工业监控、信号分析等多种场景。

weixin_29198045的博客 831

hdu2577

How to Type Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 7153    Accepted Submission(s): 3230 Problem Description Pirates have f

Jamence的博客 422

ILI9488 TFT屏驱动与触摸协同开发指南

TFT-LCD显示模块是嵌入式人机交互系统的核心外设,其工作原理依赖于专用显示控制器(如ILI9488)对GRAM显存的精确读写,并通过SPI等串行总线接收指令与图像数据。理解RGB接口时序、寄存器初始化流程及DC/CS信号控制逻辑,是实现稳定显示的基础技术前提;而四线电阻式触摸功能则需配合XPT2046类ADC控制器,通过独立SPI或模拟时序完成坐标采集。该方案兼顾低功耗、高集成与工程可移植性,广泛应用于工业HMI、仪器仪表及STM32F407等MCU平台的教学与产品开发。本文围绕3.5英寸320×480

weixin_33814090的博客 149

动态规划HDU2577

How to Type Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3030    Accepted Submission(s): 1388 Problem Description Pirates have finis

优快云 1873

与rkipc通信

函数名称功能系统模块初始化系统模块反初始化重启恢复出厂设置导出日志导出配置文件导入配置文件系统升级获取用户数设置用户数获取用户权限设置用户权限获取用户名设置用户名获取密码(已加密)设置密码(已加密)新增用户删除用户。

qq_44643189的博客 1612

【二 Deepseek+Coze案例】【 2.2 Coze + Deepseek 实现小红书爆款笔记:打造专属Agent智能体】

摘要 本文介绍了如何利用Coze平台和Deepseek模型构建自动化Agent智能体,用于生成和优化小红书爆款笔记。文章首先分析了爆款笔记的核心特征,包括精准定位、吸引标题、实用内容、精美排版和热门标签。随后提出Agent智能体的功能需求,涵盖热点追踪、内容生成与优化、数据分析及自动发布等模块。在技术实现上,详细阐述了从环境配置、数据采集到内容生成与优化的全流程,并提供了Python代码示例,展示如何调用Coze函数获取热点数据及竞品笔记。该方案通过智能化的内容创作与运营策略,帮助用户高效打造高曝光的小红书

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 2287

HDU2577 How to Type【DP】

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2577 题目大意: 给你一个仅仅包括大写和小写字母的字符串,如今Pirates要从键盘上输出它。按CapsLk可开 启关闭大写和小写指示灯。按Shift可转换将输入字母的大写和小写而不改变CapsLk的开关状态。Pirates有 一个坏习惯,假设输入的时候Cap...

diandingyin9417的博客 160

多模态脑区细分图谱 HCP-MMP v1.0, Glasser et al. 2016 皮层和皮下区域,简写和全称对应关系

人类连接组计划多模态脑区细分图谱(HCP-MMP)提供了对人类大脑皮层区域的非常有用的细分(Glasser et al. 2016a, b)。图谱是多模态的,因为每个区域都是根据四个标准的组合定义的,包括结构(T1加权/T2加权髓鞘含量和皮层厚度图)、静息态功能连接、基于任务的激活和拓扑地形组织。HCP-MMP v1.0图谱包含每个半球180个皮层区域,基于210名参与者的分析。

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 2621

HDU2577

#include #include #include #include #include #include #include #include #include using namespace std; #define cir(a,b) memset(a,b,sizeof a) typedef long long LL; const int maxn = 100000+10;

愿岁月如歌 332

FPGA实现PCIe接口

PCI Express(PCIe)是一种高速串行计算机扩展总线标准,在FPGA中实现PCIe接口可以实现与主机系统的高速数据通信。以下是FPGA实现PCIe接口的关键技术要点。

whm128的博客 1460

【ROS2】机械臂MoveIt2

navigation2 专注于移动机器人的导航与定位,处理大范围空间的底盘运动;MoveIt2 专注于机械臂的操作规划,处理多关节协同的末端执行器运动。在复合机器人(如,移动机械臂)navigation2 负责移动到目标区域,MoveIt2 负责机械臂抓取。官网:https://moveit.picknik.ai/main/index.html。

郭老二 597

HDU 2577 How to Type(DP+模拟)

题目地址:点击打开链接 思路:快捷键用的不好也会影响AC,对于我这种只会用caps lock切换大小写的菜鸟好说,这题还是学到不少知识,(1)caps lock打开时所有的输入都是大写的,除非你再按一次caps lock关掉 (2)当你想输入大写是,可以先按shift 再按字母,只不过下一次比再输入时是小写(3)当caps lock打开时如何你想输入小写时,可以先按shift再按字母,只不过下次

Java识堂,一个有干货的微信公众号 351

基于DNN神经网络的多输入多输出数据回归预测(附带Matlab代码)

假设我们的输入数据包含n个特征,输出数据包含m个特征。在本文中,我们将介绍如何使用DNN(深度神经网络)实现多输入多输出数据回归预测,并提供相应的Matlab代码。需要注意的是,上述代码中的DNN模型是一个简化的示例,您可以根据实际任务的复杂程度和要求进行相应的调整和优化。综上所述,我们介绍了如何使用DNN神经网络实现多输入多输出数据回归预测,并提供了相应的Matlab代码。函数对DNN模型进行训练,其中输入数据需要转置,以适应网络的输入要求。最后,我们使用训练好的模型对测试数据进行预测,并打印预测结果。

DevWizard的博客 1068

hdu 2577- How to Type (dp)&&(模拟)

How to TypePirates have finished developing the typing software. He called Cathy to test his typing software. She is good at thinking. After testing for several days, she finds that if she types a stri

知足常乐的博客 367

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

HDU 2577 How to Type (dp,思维)

How to TypeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 7130 Accepted Submission(s): 3222Problem Description Pirates have finished devel

南风古 5893

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

HDU 2577 How to Type

传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2577

LsFlyt的博客 429

【HDU 2577】How to Type

题意 (我做了这题才知道caps lock 锁定大小写后,按一下shift键可以输入相反的大小写。) 这题就是给你只有大小写字母的字符串,求最少多少次按键盘。最后caps lock 必须是关闭的。 分析 这题可以模拟也可以dp。 代码 模拟 #include<cstdio> #include<cstring> int t,on,i,ans...

dingguayi7025的博客 119

hdu 2577:How to Type(动态规划)

http://acm.hdu.edu.cn/showproblem.php?pid=2577 Problem Description Pirates have finished developing the typing software. He called Cathy to test his typing software. She is good at thinking. After t...

213

HDU 2577 How to Type

题目内容 题意:就是给你一个字符串,求出按键盘最少的次数是多少 有Caps Lock和Shift两种转换大小写输入的方式 我是用模拟的方法把所有的情况都列出,用这种方法可能的情况较多注意不要漏掉情况。 这个问题也可以用DP来解,下面这是别人的用DP解法 DP解法#include<stdio.h> #include<string.h> int main() { int t;

moonlight的博客 270

HDU2577 How to Type

Description Pirates have finished developing the typing software. He called Cathy to test his typing software. She is good at thinking. After testing for several days, she finds that if she types a st

华章 391

hdu 2577 How to type(Java)

Pirates have finished developing the typing software. He called Cathy to test his typing software. She is good at thinking. After testing for several days, she finds that if she types a string by some...

Cymbals的博客 374

hdu 2577 How to Type (动态规划 入门好题)

题意:给你一个字符,有大写小写,你模拟键盘打字母的操作,可以shirft变换当前字母,可以开CapsLock灯,最后需要关掉。 因为有两个操作,需要两个维度表示状态转移。 定义:二维 dp[i ][2] ,前i个字母对应当前是 0,1操作 的最小操作。 所以有对应的状态转移方程:(见代码) 有一个细节写错了,dp[i][1]=min(…,dp[i-1][1]+2) 而不是3,这里意思是当前大

笔记 690

hdu 2577 DP

How to Type Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 8642Accepted Submission(s): 3797 Problem Description Pirates have finis...

qq_40620465的博客 168
上一篇: HDU 2084 数塔 DP
下一篇: POJ 1458 Common Subsequence (zoj 1733 ) LCS
hr_whisper
博客等级 码龄14年 132粉丝 322原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值