#include <stdio.h>

#include <iostream>

#include <sstream>

#include <string.h>

#include <math.h>

#include<stdlib.h>

#include <queue>

#include <set>

#include <algorithm>

using namespace std;

//DP,两种状态,lock,notlock的两种状态;

int min(int a,int b)

{

    return a<b?a:b;

}

#define N 110

int main()

{

    int t,i;

    int lock[N];

    int notlock[N];

    char s[N];

    scanf("%d",&t);

    while(t--)

    {

        scanf("%s",s);

        int n=strlen(s);

        if(s[0]>='A'&&s[0]<='Z')

        {

            notlock[0]=2;

            lock[0]=2;

        }

        else

        {

            notlock[0]=1;

            lock[0]=2;

        }

        for(i=1;i<n;i++)

        {

            if(s[i]>='A'&&s[i]<='Z')

            {

                lock[i]=min(lock[i-1]+1,notlock[i-1]+2);

                notlock[i]=min(lock[i-1]+2,notlock[i-1]+2);

            }

            else

            {

                lock[i]=min(notlock[i-1]+2,lock[i-1]+2);

                notlock[i]=min(notlock[i-1]+1,lock[i-1]+2);

            }

        }

        int q=min(lock[n-1]+1,notlock[n-1]);

        printf("%d\n",q);

    }

    return 0;

}

hdoj2577【多种状态】(简单DP)的更多相关文章

  1. HDU - 1176 免费馅饼 DP多种状态转移

    免费馅饼 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内.馅饼如果掉在了 ...

  2. 最大连续子序列(简单DP实现)

    最大连续子序列 最大连续子数列和一道很经典的算法问题,给定一个数列,其中可能有正数也可能有负数,我们的任务是找出其中连续的一个子数列(不允许空序列),使它们的和尽可能大.我们一起用多种方式,逐步优化解 ...

  3. hoj2662 状态压缩dp

    Pieces Assignment My Tags   (Edit)   Source : zhouguyue   Time limit : 1 sec   Memory limit : 64 M S ...

  4. [知识点]状态压缩DP

    // 此博文为迁移而来,写于2015年7月15日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102w6jf.html 1.前 ...

  5. [动态规划]状态压缩DP小结

     1.小技巧 枚举集合S的子集:for(int i = S; i > 0; i=(i-1)&S) 枚举包含S的集合:for(int i = S; i < (1<<n); ...

  6. POJ 3311 Hie with the Pie(Floyd+状态压缩DP)

    题是看了这位的博客之后理解的,只不过我是又加了点简单的注释. 链接:http://blog.csdn.net/chinaczy/article/details/5890768 我还加了一些注释代码,对 ...

  7. hdu 4057(ac自动机+状态压缩dp)

    题意:容易理解... 分析:题目中给的模式串的个数最多为10个,于是想到用状态压缩dp来做,它的状态范围为1-2^9,所以最大为2^10-1,那我们可以用:dp[i][j][k]表示长度为i,在tri ...

  8. HDU1565+状态压缩dp

    简单的压缩状态 dp /* 状态压缩dp 同hdu2167 利用滚动数组!! */ #include<stdio.h> #include<string.h> #include& ...

  9. POJ1185 - 炮兵阵地(状态压缩DP)

    题目大意 中文的..直接搬过来... 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队.一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平 ...

  10. POJ3254 - Corn Fields(状态压缩DP)

    题目大意 给定一个N*M大小的土地,土地有肥沃和贫瘠之分(每个单位土地用0,1来表示贫瘠和肥沃),要求你在肥沃的单位土地上种玉米,如果在某个单位土地上种了玉米,那么与它相邻的四个单位土地是不允许种玉米 ...

随机推荐

  1. Java UUID 生成(转载)

    来自:http://www.cnblogs.com/jdonson/archive/2009/07/22/1528466.html 基本原理:GUID是一个128位长的数字,一般用16进制表示.算法的 ...

  2. WPF中的数据绑定Data Binding使用小结

    完整的数据绑定的语法说明可以在这里查看: http://www.nbdtech.com/Free/WpfBinding.pdf MSDN资料: Data Binding: Part 1 http:// ...

  3. EasyDarwin流媒体服务器高性能优化方向

    我们在EasyDarwin开源流媒体服务器上做了很多的优化,包括前面说到的<EasyDarwin开源流媒体服务器将select改为epoll的方法>.<EasyDarwin开源流媒体 ...

  4. ReentrantLock和Synchronized

    1 synchronized 1.1 一旦没有获取到就只能一直等待 A和B都获取同一个对象锁,如果A获取了,B没有获取到,那么在A释放该锁之前,B只能无穷等待下去. 1.2 synchronized是 ...

  5. SPDY: An experimental protocol for a faster web HTTP/2

    http://www.chromium.org/spdy/spdy-whitepaper https://en.wikipedia.org/wiki/SPDY Internet protocol su ...

  6. Delphi 7以来的Delphi 2009测试版新语法特性

    我晕,Delphi 7 以后增加了这么多有用的语法,我都不知道.真是越学越觉得自己浅薄,自己所作的Delphi项目所用的知识还不够Delphi知识储备体系的十分之一,更别说Delphi还在继续发展. ...

  7. [SCOI2009] 最长距离

    题目描述 windy有一块矩形土地,被分为 NM 块 11 的小格子. 有的格子含有障碍物. 如果从格子A可以走到格子B,那么两个格子的距离就为两个格子中心的欧几里德距离. 如果从格子A不可以走到格子 ...

  8. Git检出远程库的分支等相关操作

    来到公司,询问同事后发现系统已经上传到Git远程仓库: 我这里先把远程仓库clone下来: $ git clone http://git.eas****tect.git 发现目录下只有一个READY. ...

  9. ubuntu12.04不能记住上次编辑位置的解决方案

    1:按照网上的代码 au BufReadPost * |if line("'\"") <= line("$")|exe("norm ' ...

  10. 一看就会,科目三靠边停车30cm技巧!再也不怕不会停车了!

    靠边停车是科目三考试的最后一关,如果在这一关失败,那之前所有的努力都功亏一篑了,你感觉吃不吃亏?就连我们自己平时开车,轮胎万一与路边石阶刮蹭,就会造成不小的伤害.那么靠边停车时有哪些注意要点呢?请和小 ...