动态规划——How to Type(hdu2577)
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=2577
题目描述:
要求一个字符串输入,求按键盘的最少次数。有Caps Lock和Shift两种转换大小写输入的方式
解题思路:
保存大写和小写两种状态,和上篇雇佣员工逻辑一样,当前字符虽然是大写,不过也可能利用小写+shift实现。
假设我们当前字符i需要大写:对于i输入完后,有两种状态,一种是大写,一种是小写。
输入完大写字符i后继续保持大写的状态可以由①原输入为大写,写一个字符即可,b[i][1]+1 ②原输入为小写,按shift+字符,b[i][0]+2
输入完大写字符i后继续保持大小的状态可以由①原输入为大写,切换后写一个字符即可,b[i][1]+2 ②原输入为小写,写一个字符即可,b[i][0]+1
#include<string.h>
#include<stdio.h>
int min(int a,int b)
{
return a<b?a:b;
}
int main(){int b[101][2];char a[10010];int n,i,l;scanf("%d",&n);getchar();while(n--){gets(a);b[0][0]=0;b[0][1]=1;for(i=0;a[i]!='\0';i++){if(a[i]>='A'&&a[i]<='Z') //如果需求大写 {b[i+1][1]=min(b[i][0]+2,b[i][1]+1);//写完是大写的状态 b[i+1][0]=min(b[i][0]+2,b[i][1]+2);//写完是小写的状态 }else //如果需求小写 {b[i+1][1]=min(b[i][0]+2,b[i][1]+2);b[i+1][0]=min(b[i][0]+1,b[i][1]+2);}}l=min(b[i][1]+1,b[i][0]);printf("%d\n",l);}return 0;
}
动态规划——How to Type(hdu2577)相关推荐
- RuntimeError: Expected object of device type cuda but got device type cpu for argument pytorch数据位置
RuntimeError: Expected object of device type cuda but got device type cpu for argument #2 'target' i ...
- 最大连续子序列和-动态规划
题目描述: 给定K个整数的序列{ N1, N2, -, NK },其任意连续子序列可表示为{ Ni, Ni+1, -, Nj },其中 1 <= i <= j <= K.最大连续子序 ...
- 每日一道算法题--leetcode 509--斐波那契数(动态规划)--python
[题目描述] [代码思路] 自底向上的动态规划,避免了采用递归浪费空间以及重复计算. [源代码] class Solution(object):def fib(self, N):"" ...
- Datawhale编程——动态规划DP
0-1背包问题 问题:有n个物品,第i个物品价值为vi,重量为wi,其中vi和wi均为非负数,背包的容量为W,W为非负数.现需要考虑如何选择装入背包的物品,使装入背包的物品总价值最大. 针对这个经典的 ...
- 算法62---最长回文子序列长度(子串)、回文子序列总共个数(子串)【动态规划】...
参考链接:https://www.cnblogs.com/AndyJee/p/4465696.html 一.题目:最长回文子序列长度 给定字符串,求它的最长回文子序列长度.回文子序列反转字符顺序后仍然 ...
- 贪心、递归、递推以及动态规划算法的分析与对比
PS: 头一次规规矩矩的按照论文的格式写文章,呵呵.虽然是小儿科的不能再小儿科的东西了..不过..也忽悠了6000多字~~嘿嘿..肯定写的不好,第一次嘛..所以..接受大家一切批评哈!...文章N ...
- LeetCode-53. 最大子序和-最简单的动态规划(Python3)
题目链接: 53.最大子序和 题目描述: 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,- ...
- 化工热力学补考成功,几天没有头脑了,赶紧赏自己几题Leetcode动态规划算法最长系列
@Author:Runsen @Date:2020/10/9 "恭喜你昨天,化工热力学补考成功!" "区区化工热力学还想让我重修,只不过浪费了我九月一半的精力和十月的九成 ...
- 八十九、动态规划系列背包问题之完全背包
@Author:Runsen @Date:2020/9/15 动态规划需要搞定三个系列:三个背包,零钱问题和股票问题.今天就开始干掉三个背包问题. 三个背包问题:01背包,多重背包,完全背包.上次搞定 ...
最新文章
- PHP Memcached应用实现代码
- 10个迷惑新手的Cocoa,Objective-C开发难点和问题
- object.defineProperty
- es 创建索引报错_ES添加映射报错analyzer [ik_max_word] not found for field [title]
- 如何用html构建ios应用,使用HTML5构建iOS原生APP
- 郑州it java_郑州Java网站开发
- QQ第三方授权登录(带详细源码)
- hdu 1874 畅通project续
- 数据-第6课-线性表的相关操作
- 基于SpringMVC国际化资源配置方式
- java实现AES密钥生成
- docx4j 操作word中的chart
- 希尔加密法matlab,希尔密码加密解密
- 服务器命令压缩文件,使用linux的zip命令压缩文件
- ambiguous column name 错误
- Linux 基本操作
- python-RFM模型
- 学习《User and entity behavior analysis under urban big data》(UEBA)
- Predictive and Prescriptive Methods in Operations Research and Machine Learning: An Optimization App
- Python第三方库turtle的应用
热门文章
- 10 FI配置-财务会计-把会计年度变式分配给公司代码
- 9.5 LSMW程序创建操作手册 第12 13 14步
- linuxPci驱动获取指定设备bus、device以及devfn数据方式
- centos boot dvd版本_iPad版Photoshop来了,设计师可以躺着改稿了!!!
- 虚函数和虚表指针的例子
- transforms.Compose()函数
- github 打不开_App更新不了? TF打不开? 试试这个
- WordPress网站弹窗插件PopupPress插件
- lol英雄联盟符文助手源码/一键应用符文
- 帮管客CRM客户管理系统 v3.6.0