HDU 2577(DP)
2015-11-01 21:55
218 查看
题意:要求一个字符串输入,按键盘的最少次数。有Caps Lock和Shift两种转换大小写输入的方式
思路:用dpa与dpb数组分别记录Caps Lock的开关状态,dpa表示不开,dpb表示开
代码:
思路:用dpa与dpb数组分别记录Caps Lock的开关状态,dpa表示不开,dpb表示开
代码:
#include <stdio.h> #include <string.h> #include <algorithm> using namespace std; char str[111]; int dpa[111],dpb[111]; int main() { int t,i,len,flag; scanf("%d",&t); while(t--) { scanf("%s",str+1); dpa[0] = 0; dpb[0] = 1; for(i = 1; str[i]; i++) { if(str[i]>='a'&&str[i]<='z') { dpa[i]=min(dpa[i-1]+1,dpb[i-1]+2);//1.灯不亮,直接按字母2.灯亮,关灯,再按字母 dpb[i]=min(dpa[i-1]+2,dpb[i-1]+2);//1.灯不亮,按下字母后,还要开灯2.灯亮,按shift+字母 } else if(str[i]>='A'&&str[i]<='Z') { dpa[i]=min(dpa[i-1]+2,dpb[i-1]+2); dpb[i]=min(dpa[i-1]+2,dpb[i-1]+1); } } printf("%d\n",min(dpb[i-1]+1,dpa[i-1]));//最后要关灯,dpb要+1 } return 0; }
相关文章推荐
- 洛谷2629 好消息,坏消息
- Codeforces Round #328 (Div. 2)
- Nov 1st-someTips
- 信息安全系统设计基础第七周期中总结
- oracle中的游标(转)
- java 单例模式 几个实现方法
- web应用想要达到完全的线程安全,需要注意哪些地方?
- 单元测试React
- 在Xcode添加插件,插件默认存在的路径
- 三、jQuery--jQuery基础--jQuery基础课程--第9章 jQuery 常用插件
- java 单例模式 几个实现方法
- 蓝懿ioS 技术内容和心得交流 11.1 正反向
- 1000年---2000年之间的闰年
- ROC曲线的解释(很形象)
- 细数JDK里的设计模式
- [NOIP 2005]谁拿了最多奖学金 模拟
- python 类的继承,内置函数(1)
- AChartEngine 简介
- 九九乘法表
- Sense Time 深度学习基础讲座