hdu 2577 How to Type //简单DP

来源:互联网 发布:linux 压缩包 编辑:程序博客网 时间:2024/05/20 05:09

#include"iostream"
#include"string.h"
using namespace std;

int min (int a, int b)
{
    returna
}
int main()
{
    inti,num;
    intdp[105][2];
    charstr[105];
   scanf("%d",&num);
   while(num--)
    {
               scanf("%s",str+1);
               memset(dp,0,sizeof(dp));
               dp[0][0]=0; //dp[i][0]表示打印完第i个字符,键盘上的大写锁定键是关闭着的。
               dp[0][1]=1; //dp[i][1]表示打印完第i个字符,键盘上的大写锁定键的打开着的。
               for(i=1;str[i];i++)
               {
                                  if(str[i]>='a' &&str[i]<='z')//input小写
                                  {
                                      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);
                                  }
                                  else//input大写
                                  {
                                      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);
                                  }
               }
               int pmin=min(dp[i-1][0],dp[i-1][1]+1);
               printf("%d\n",pmin);
    }
   getchar();getchar();
    return0;
}

原创粉丝点击