HDU2577
来源:互联网 发布:太平洋软件站官方网站 编辑:程序博客网 时间:2024/04/28 15:20
How to Type
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Problem Description
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.
Input
The first line is an integer t (t<=100), which is the number of test case in the input file. For each test case, there is only one string which consists of lowercase letter and upper case letter. The length of the string is at most 100.
Output
For each test case, you must output the smallest times of typing the key to finish typing this string.
Sample Input
3
Pirates
HDUacm
HDUACM
Sample Output
8
8
8
Hint
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 8
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Problem Description
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.
Input
The first line is an integer t (t<=100), which is the number of test case in the input file. For each test case, there is only one string which consists of lowercase letter and upper case letter. The length of the string is at most 100.
Output
For each test case, you must output the smallest times of typing the key to finish typing this string.
Sample Input
3
Pirates
HDUacm
HDUACM
Sample Output
8
8
8
Hint
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 8
The string "HDUACM", can type this way Caps lock h, d, u, a, c, m, Caps lock, the answer is 8
对于每个字母之前的字母有两种状态 1.caps开启 2.caps关闭,有数组分别记录两种状态下的最短时间,接下来状态转移方程:
0代表没开,1代表开了,对当前字母分类
小写字母: timer[i+1][0]=min(timer[i][0]+1,timer[i][1]+2);
timer[i+1][1]=min(timer[i][0]+2,timer[i][1]+2);
大写字母: timer[i+1][0]=min(timer[i][0]+2,timer[i][1]+2);
timer[i+1][1]=min(timer[i][0]+2,timer[i][1]+1);
#include<stdio.h>#include<string.h>#define min(a,b) (a>b?b:a)char m[120];int timer[120][2];int main(){int n;while(scanf("%d%*c",&n)!=EOF){while(n--){gets(m);memset(timer,0,sizeof(timer));timer[0][1]=1;for(int i=0; i<strlen(m); i++)if(m[i]>='a' && m[i]<='z'){timer[i+1][0]=min(timer[i][0]+1,timer[i][1]+2);timer[i+1][1]=min(timer[i][0]+2,timer[i][1]+2);}else {timer[i+1][0]=min(timer[i][0]+2,timer[i][1]+2);timer[i+1][1]=min(timer[i][0]+2,timer[i][1]+1);}printf("%d\n",min(timer[strlen(m)][0],timer[strlen(m)][1]+1));}}return 0;}
- HDU2577
- HDU2577
- hdu2577
- hdu2577
- HDU2577
- HDU2577
- hdu2577
- HDU2577 How to Type
- hdu2577简单DP
- HDU2577--How to Type
- hdu2577 How to Type
- HDU2577--How to Type
- 动态规划HDU2577
- hdu2577 how to type
- HDU2577 How to Type
- HDU2577 How to Type
- HDU2577 How to Type
- HDU2577 How to Type
- C++中使用类(重载,友元函数,转换函数等)
- MFC渐入渐出框实现方式二
- MFC上下浮动与渐入渐出消息提示框实现
- MFC DLL资源动态切换
- MFC渐入渐出框实现方式二
- HDU2577
- 关于opera老是弹出error console的问题
- 读书笔记(一) -- Structure and interpretation of computer programs
- QWT的使用陷阱
- perl win32 api 指针参数
- msvcrtd.lib和libcmtd.lib冲突
- MSVC与CRT默认库链接冲突问题
- VC++中忽略所有默认库纯Win32 API编译及链接
- Vaadin Web应用开发教程(19):UI组件-Tree 组件