hdu2577 how to type

来源:互联网 发布:mac版解压软件下载 编辑:程序博客网 时间:2024/04/29 13:55
//dp[i][0] 表示type i 时cap处于关的状态//dp[i][1] 表示开的状态。//注意,初始化的时候要将dp[0][1]=1其他为0//因为开始的时候cap是关的#include <cstdio>#include <cstring>#include <string>#include <algorithm>using namespace std;const int maxn = 108;int dp[maxn][2];char a[maxn];int n;void init(){scanf("%s",a);n = strlen(a);memset(dp,0,sizeof(dp));dp[0][1]=1;}void solve(){for (int i=0;i<n;i++){if (a[i]>='a'&&a[i]<='z'){dp[i+1][0] = min(dp[i][0]+1,dp[i][1]+2);dp[i+1][1] = min(dp[i][0]+2,dp[i][1]+2);}else {dp[i+1][0] = min(dp[i][0]+2,dp[i][1]+2);dp[i+1][1] = min(dp[i][0]+2,dp[i][1]+1);}}}void print(){printf("%d\n",min(dp[n][0],dp[n][1]+1));}int main(){int t;    freopen("G:\\Code\\1.txt","r",stdin);scanf("%d",&t);while(t--){init();solve();print();}}

0 0