博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU-2577 How to Type 动态规划
阅读量:6734 次
发布时间:2019-06-25

本文共 972 字,大约阅读时间需要 3 分钟。

题义:给定一个不长于100的字符串,求输入完整个串的最少按键次数。

思路:对于打完每一个字符后,保留其保留大写锁定和非大写的两种状态的最少按键次数即可,做题中竟然忘了在大写锁定的时候可以shift+alphabet可以打出小写

代码如下:

#include 
#include
#include
#include
#include
using namespace std;int dp[105][2]; // 零表示以小写结尾,1代表以大写结尾char s[105];int DP(){ int length = strlen(s+1); dp[0][1] = 1; for (int i = 1; i <= length; ++i) { if (islower(s[i])) { dp[i][0] = min(dp[i-1][0]+1, dp[i-1][1]+2); dp[i][1] = min(dp[i-1][0]+2, dp[i-1][1]+2); } else { dp[i][0] = min(dp[i-1][0]+2, dp[i-1][1]+2); dp[i][1] = min(dp[i-1][0]+2, dp[i-1][1]+1); } } return min(dp[length][0], dp[length][1]+1);}int main(){ int T; for (scanf("%d", &T); T > 0; --T) { scanf("%s", s+1); printf("%d\n", DP()); } return 0;}

转载于:https://www.cnblogs.com/Lyush/archive/2012/04/21/2461019.html

你可能感兴趣的文章
JavaScript动态加载script方式引用百度地图API 拓展---JavaScript的Promise
查看>>
for循环
查看>>
iOS - UIMenuController
查看>>
Shiro_权限 URL 配置细节
查看>>
20162329 张旭升 实验三:实验报告
查看>>
[大话数据结构]算法
查看>>
Python学习笔记
查看>>
web语义化
查看>>
用户模板和用户场景
查看>>
几种设置UITableView的cell动态高度的方法
查看>>
七牛云存储上传自有证书开启https访问
查看>>
vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件...
查看>>
IO多路复用模型之epoll实现机制
查看>>
C++之面向对象初探----对象管理模型(关键是this指针)
查看>>
左神算法基础班4_1&2实现二叉树的先序、中序、后序遍历,包括递归方式和非递归...
查看>>
zabbix
查看>>
vue之v-text渲染多值
查看>>
css 的 z-index
查看>>
Make a Person(FCC高级算法)
查看>>
遍历系统的所有ObjectType和TypeIndex
查看>>