码迷,mamicode.com
首页 > 其他好文 > 详细

ZOJ 3985 - String of CCPC - [字符串处理]

时间:2017-11-05 18:32:19      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:个数   string   space   show   单位   namespace   substr   lan   tar   

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3985

 

题意:

给出一个长度为n的字符串,全部由‘C‘和‘P‘组成;

then,可以在原有字符串的基础上添加任意多个’C’或’P’,每次添加一个就要花费一些value,花费的value = i - 1(个数i=1,2,3,……);

在任意的地方只要组成”CCPC”就可以获得一单位value,问你到最后可以获得最多多少单位的value。

 

题解:

观察一下就可以知道,任何添加两个及以上字符的行为都是没有价值增加的。

所以,最多只需要增加一个字符。

先遍历把"CCPC"找出来,然后剩下去判断是否可以利用"CCC"/"CCP"/"CPC"来生成目标字符串”CCPC”;

 

AC代码:

#include<bits/stdc++.h>
using namespace std;
int n;
string str;
string ccpc="CCPC", ccc="CCC", ccp="CCP", cpc="CPC";
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        cin>>str;

        int value=0;
        bool flag=0;
        for(int i=0;i<n;i++)
        {
            if(str.substr(i,4)==ccpc)
            {
                value++;
                i+=2;
                continue;
            }

            if(flag) continue;
            string tmp=str.substr(i,3);
            if(tmp==ccc || tmp==ccp || tmp==cpc)
            {
                if(tmp==ccc && str.substr(i+1,4)==ccpc) continue; //这里需要特判一下
                value++;
                flag=1;
            }
        }

        printf("%d\n",value);
    }
}

 

ZOJ 3985 - String of CCPC - [字符串处理]

标签:个数   string   space   show   单位   namespace   substr   lan   tar   

原文地址:http://www.cnblogs.com/dilthey/p/7788042.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!