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

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

上班之余抽点时间出来写写博文,希望对新接触的朋友有帮助。今天在这里和大家一起学习一下输入状态

    题目链接:

    分析:

     1.要想晓得输入n个字母时最小的按键数,必须先求输入n-1个字母时的最小按键数.所以,要从前今后把每输入一个字母的最小按键数都算出来.

     2. 每次输入时都只有两种状态(CapsLock  on与off, Shift另外考虑),所以只要求出每次输入时候别在这两种状态下的最小值,便可求出输入下一个的最小值.

     3. 初始时,i=0,状态为off,所以on[0]=1 (要变为on状态必须按下CapsLock) off[0]=0;

     4. 当第i个要输入的是大写字母:

     a.如果输入前的状态为on时,若要使得输入后坚持on状态,只按一下即可,若要使得输入后坚持off状态,则要按两下.

     b.如果输入前的状态为off时,若要使得输入后坚持on状态,最少要按两下,若要使得输入后坚持off状态,也最小要按两下(加Shift).

     5. 当第i个要输入的是小写字母时,与4相似.

    

    每日一道理
生活的无奈,有时并不源于自我,别人无心的筑就,那是一种阴差阳错。生活本就是矛盾的,白天与黑夜间的距离,春夏秋冬之间的轮回,于是有了挑剔的喜爱,让无奈加上了喜悦的等待。
#include
#include
#include
#include
#include
#include
#include
using namespace std;const int maxn=100000;int on[105]={1};int off[105]={0};int main() { int T; cin>>T; while(T--) { string s; cin>>s; int len=s.size(); for(int i=0,q=0; i
='A'&&s[i]<='Z'){ on[i+1]=min( on[i]+1, off[i]+2 ); off[i+1]=min( on[i]+2, off[i]+2 ); } else { on[i+1]=min( on[i]+2, off[i]+2 ); off[i+1]=min( on[i]+2, off[i]+1 ); } } on[len]++;///最后要坚持关灯状态 cout<
<

文章结束给大家分享下程序员的一些笑话语录: 雅虎最擅长的不是开通新业务,是关闭旧业务。

转载地址:http://swqna.baihongyu.com/

你可能感兴趣的文章
OLEDB Excel 与C# 的数据流通方法
查看>>
Rafy 领域实体框架演示(3) - 快速使用 C/S 架构部署
查看>>
给知识分分等级
查看>>
权限管理越来越复杂
查看>>
C# 多线程窗体的创建
查看>>
开始编写Golang代码
查看>>
Linux 小知识翻译 - 「协议(protocol)」
查看>>
在JavaScript中对HTML进行反转义
查看>>
postgresql系统函数
查看>>
Javascript 中的变量作用域问题
查看>>
chrome浏览器关闭标签页面
查看>>
创建注记图层要素
查看>>
C++11 正则表达式——基础知识介绍
查看>>
jquery 日期+时间 date & time 插件
查看>>
【读书笔记《Android游戏编程之从零开始》】8.Android 游戏开发常用的系统控件(系统控件常见问题)...
查看>>
jsoncpp v0.5中的一个bug
查看>>
DNS报文格式(RFC1035)
查看>>
停下来,等等灵魂(二)
查看>>
在Android中实现service动态更新UI界面
查看>>
找出数字在已排序数组中出现的次数
查看>>