HDU 2577 How to Type
2016-04-28 11:05
351 查看
简单DP。
dp[i][j]表示敲完第i个字符,大写键是否亮起的最小操作次数
dp[i][j]表示敲完第i个字符,大写键是否亮起的最小操作次数
#include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; const int INF=0x7FFFFFFF; char s[100+10]; int dp[100+10][3]; int main() { int T; scanf("%d",&T); while(T--) { scanf("%s",s); int len=strlen(s); for(int i=0;i<=len;i++) dp[i][0]=dp[i][1]=INF; if(s[0]>='A'&&s[0]<='Z') dp[0][1]=2,dp[0][0]=2; else dp[0][1]=2,dp[0][0]=1; for(int i=1;i<len;i++) { if(s[i]>='A'&&s[i]<='Z') { 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); } else { 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); } } printf("%d\n",min(dp[len-1][0],dp[len-1][1]+1)); } return 0; }
相关文章推荐
- 今日BBC
- iOS Images.xcassets: None of the input catalogs contained a matching app icon set named "AppIcon".
- CF Educational Round 12,A
- Python去掉字符串中空格的方法
- 【转】C#综合揭秘——通过修改注册表建立Windows自定义协议
- mysql导入数据
- Java基础——Collection接口
- expdp与impdp参数用法
- nginx安全优化之隐藏版本
- 懒人爱家务_动画效果编程基础--AnimationAndroid
- Linux的7种运行级别
- Xcode里-ObjC, -all_load, -force_load
- iOS UIWebView的基本用法
- Android蓝牙4.0API-类-BluetoothGattCallback
- PS雪碧图快捷键
- JS实现的base64加密解密完整实例
- NSAttributedString那点事
- 使用MySQL Migration Toolkit快速将Oracle数据导入MySQL
- RDD中的转换和action(一)基本函数
- RxJava学习(七)