题目链接:

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)相关推荐

  1. 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 ...

  2. 最大连续子序列和-动态规划

    题目描述: 给定K个整数的序列{ N1, N2, -, NK },其任意连续子序列可表示为{ Ni, Ni+1, -, Nj },其中 1 <= i <= j <= K.最大连续子序 ...

  3. 每日一道算法题--leetcode 509--斐波那契数(动态规划)--python

    [题目描述] [代码思路] 自底向上的动态规划,避免了采用递归浪费空间以及重复计算. [源代码] class Solution(object):def fib(self, N):"" ...

  4. Datawhale编程——动态规划DP

    0-1背包问题 问题:有n个物品,第i个物品价值为vi,重量为wi,其中vi和wi均为非负数,背包的容量为W,W为非负数.现需要考虑如何选择装入背包的物品,使装入背包的物品总价值最大. 针对这个经典的 ...

  5. 算法62---最长回文子序列长度(子串)、回文子序列总共个数(子串)【动态规划】...

    参考链接:https://www.cnblogs.com/AndyJee/p/4465696.html 一.题目:最长回文子序列长度 给定字符串,求它的最长回文子序列长度.回文子序列反转字符顺序后仍然 ...

  6. 贪心、递归、递推以及动态规划算法的分析与对比

    PS:   头一次规规矩矩的按照论文的格式写文章,呵呵.虽然是小儿科的不能再小儿科的东西了..不过..也忽悠了6000多字~~嘿嘿..肯定写的不好,第一次嘛..所以..接受大家一切批评哈!...文章N ...

  7. LeetCode-53. 最大子序和-最简单的动态规划(Python3)

    题目链接: 53.最大子序和 题目描述: 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,- ...

  8. 化工热力学补考成功,几天没有头脑了,赶紧赏自己几题Leetcode动态规划算法最长系列

    @Author:Runsen @Date:2020/10/9 "恭喜你昨天,化工热力学补考成功!" "区区化工热力学还想让我重修,只不过浪费了我九月一半的精力和十月的九成 ...

  9. 八十九、动态规划系列背包问题之完全背包

    @Author:Runsen @Date:2020/9/15 动态规划需要搞定三个系列:三个背包,零钱问题和股票问题.今天就开始干掉三个背包问题. 三个背包问题:01背包,多重背包,完全背包.上次搞定 ...

最新文章

  1. PHP Memcached应用实现代码
  2. 10个迷惑新手的Cocoa,Objective-C开发难点和问题
  3. object.defineProperty
  4. es 创建索引报错_ES添加映射报错analyzer [ik_max_word] not found for field [title]
  5. 如何用html构建ios应用,使用HTML5构建iOS原生APP
  6. 郑州it java_郑州Java网站开发
  7. QQ第三方授权登录(带详细源码)
  8. hdu 1874 畅通project续
  9. 数据-第6课-线性表的相关操作
  10. 基于SpringMVC国际化资源配置方式
  11. java实现AES密钥生成
  12. docx4j 操作word中的chart
  13. 希尔加密法matlab,希尔密码加密解密
  14. 服务器命令压缩文件,使用linux的zip命令压缩文件
  15. ambiguous column name 错误
  16. Linux 基本操作
  17. python-RFM模型
  18. 学习《User and entity behavior analysis under urban big data》(UEBA)
  19. Predictive and Prescriptive Methods in Operations Research and Machine Learning: An Optimization App
  20. Python第三方库turtle的应用

热门文章

  1. 10 FI配置-财务会计-把会计年度变式分配给公司代码
  2. 9.5 LSMW程序创建操作手册 第12 13 14步
  3. linuxPci驱动获取指定设备bus、device以及devfn数据方式
  4. centos boot dvd版本_iPad版Photoshop来了,设计师可以躺着改稿了!!!
  5. 虚函数和虚表指针的例子
  6. transforms.Compose()函数
  7. github 打不开_App更新不了? TF打不开? 试试这个
  8. WordPress网站弹窗插件PopupPress插件
  9. lol英雄联盟符文助手源码/一键应用符文
  10. 帮管客CRM客户管理系统 v3.6.0