【HDU 2577】How to Type
来源:互联网 发布:哈登16 17赛季数据 编辑:程序博客网 时间:2024/06/08 10:57
Pirates have finished developing the typing software. He called Cathy to test his typing software. She is good at thinking. After testing for several days, she finds that if she types a string by some ways, she will type the key at least. But she has a bad habit that if the caps lock is on, she must turn off it, after she finishes typing. Now she wants to know the smallest times of typing the key to finish typing a string.
3PiratesHDUacmHDUACM
888
The string “Pirates”, can type this way, Shift, p, i, r, a, t, e, s, the answer is 8.The string “HDUacm”, can type this way, Caps lock, h, d, u, Caps lock, a, c, m, the answer is 8The string "HDUACM", can type this way Caps lock h, d, u, a, c, m, Caps lock, the answer is 8
/* dp[0][i]:大写标记关闭 dp[1][i]:大写标记开启*/#include<iostream>#include<algorithm>#include<cstring>#include<cmath>#include<cstdio>#include<queue>#include<vector>using namespace std;const int MX = 105;char s[MX];int dp[2][MX];int main(){ int T; scanf("%d", &T); while(T--) { scanf("%s", s + 1); memset(dp, 0, sizeof(dp)); dp[0][0] = 0; dp[1][0] = 1; for(int i = 1; i <= strlen(s + 1); i++) { if(s[i] >= 'a' && s[i] <= 'z') { dp[0][i] = min(dp[0][i - 1] + 1, dp[1][i - 1] + 2); dp[1][i] = min(dp[0][i - 1] + 2, dp[1][i - 1] + 2); } else if(s[i] >= 'A' && s[i] <= 'Z') { dp[0][i] = min(dp[0][i - 1] + 2, dp[1][i - 1] + 2); dp[1][i] = min(dp[0][i - 1] + 2, dp[1][i - 1] + 1); } } cout<<min(dp[0][strlen(s + 1)], dp[1][strlen(s + 1)] + 1)<<endl; //最后要关闭标记,所以若是标记开启,还要额外加一 } return 0;}
阅读全文
0 0
- hdu 2577 How to Type
- HDU-2577-How to Type
- HDU 2577 how to type
- HDU 2577 How to Type
- hdu 2577 How to Type
- Hdu 2577 How to Type
- HDU 2577 how to type
- hdu 2577 How to Type
- hdu 2577 How to Type
- HDU 2577 How to Type
- hdu 2577 How to Type
- HDU - 2577 How to Type
- hdu 2577 How to Type
- HDU - 2577 How to Type
- HDU 2577 How to Type
- HDU 2577 How to Type
- HDU 2577 How to Type
- HDU 2577 How to Type
- opencv计时函数
- get和post的区别
- [Android Studio系列(五)] Android Studio手动配置Gradle的方法
- 最优化
- 锋利的jquery---ch1,
- 【HDU 2577】How to Type
- PHP 中如何正确统计中文字数
- ORACLE日期时间函数大全
- (约瑟夫环公式)Joseph
- JSP的第2代开发技术:JSP+EJB
- 欢迎使用CSDN-markdown编辑器
- ios蓝牙开发(三)app作为外设被连接的实现
- 知生涯—职业顾问—怎样平衡工作与家庭?
- Linux的GRUB简介