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

题意:

给定9个血槽,有三种物品,每次可以把连续相同的物品抵消掉,但是只有把连续三个的物品抵消才有价值,问你用哪种方案,能够使获得的价值最大。

思路:

暴力就行,总有6种方案,维护一个最大值即可。

代码:

#include <iostream>
#include <map>
#include <vector>
#include <cstring> using namespace std;
vector<char>ss;
bool vis[];
vector<int>qq;
int ans=;
map<int,char>mp; void dfs(int u)
{
if(qq.size()==)
{
int sum=;
vector<char>s;
for(int i=;i<ss.size();i++)
{
s.push_back(ss[i]);
}
for(int i=;i<qq.size();i++)
{
for(int j=;j<s.size();j++)
{
if(j+<s.size())
{
if(s[j]==s[j+]&&s[j+]==s[j+]&&s[j]==mp[qq[i]])
{
sum++;
}
}
}
int kk=;
while(kk--)
{
for(int j=;j<s.size();j++)
{
if(s[j]==mp[qq[i]])
{
s.erase(s.begin()+j);
break;
}
}
}
}
ans=max(ans,sum);
return ;
}
for(int i=;i<=;i++)
{
if(!vis[i])
{
vis[i]=true;
qq.push_back(i);
dfs(i);
qq.pop_back();
vis[i]=false;
}
}
} int main()
{
int t;
char s1;
mp[]='g';
mp[]='o';
mp[]='a';
cin>>t;
while(t--)
{
ss.clear();
for(int i=;i<=;i++)
{
cin>>s1;
ss.push_back(s1);
}
ans=;
vector<char>w(ss.begin(),ss.end());
int sum3=;
for(int i=;i<w.size();i++)
{
if(i+<w.size()&&w[i]==w[i+]&&w[i+]==w[i+])
{
sum3++;
}
}
ans=sum3;
for(int i=;i<=;i++)
{
memset(vis,false,sizeof(vis));
vis[i]=true;
qq.clear();
qq.push_back(i);
dfs(i);
}
cout<<ans<<endl;
}
return ;
}

2017CCPC秦皇岛 C题Crusaders Quest&&ZOJ3983【模拟+STL】的更多相关文章

  1. 2018 CCPC秦皇岛 C题 Crusader Quest

    Crusaders Quest is an interesting mobile game. A mysterious witch has brought great darkness to the ...

  2. 2017CCPC秦皇岛 L题One-Dimensional Maze&&ZOJ3992【模拟】

    链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3992 题意: 走迷宫,一个一维字符串迷宫,由'L'.'R'组成,分别 ...

  3. 2017CCPC秦皇岛 A题Balloon Robot&&ZOJ3981【模拟】

    题意: 一个机器人在长为M的圆形轨道上送气球,当机器人到达M号点的时候下一站会回到1号点,且全程不会停止运动.现在在长为M的轨道上有N个队伍,队伍会在某个时间做需要一个气球,机器人需要送过去.一共有P ...

  4. 2017CCPC秦皇岛 M题Safest Buildings&&ZOJ3993【复杂模拟】

    题意: 给出两个半径R,r,R表示第一次的大圈半径,r表示第二次的小圈半径.第一次大圈的圆心位于(0,0),第二次小圈的圆心未知,但在大圈内,给你一个n,然后给出n个屋子的位置,问这些屋子中,第二次在 ...

  5. 2017CCPC秦皇岛 E题String of CCPC&&ZOJ3985【模拟】

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3985 题意: 给定一个字符串,由c和p组成,可以添加c或者p. 串中出现一 ...

  6. 2017CCPC秦皇岛 H题Prime Set&&ZOJ3988

    题意: 定义一种集合,只有两个数,两个数不同且加起来为素数.要从n个数里抽出数字组成该集合(数字也可以是1~n,这个好懵圈啊),要求你选择最多k个该种集合组成一个有最多元素的集合,求出元素的数量. 思 ...

  7. 2017CCPC秦皇岛 G题Numbers&&ZOJ3987【大数】

    题意: 给出一个数n,现在要将它分为m个数,这m个数相加起来必须等于n,并且要使得这m个数的或值最小. 思路: 从二进制的角度分析,如果这m个数中有一个数某一位为1,那么最后或起来这一位肯定是为1的, ...

  8. ZOJ 3983 Crusaders Quest(思维题)

    C - Crusaders Quest Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu S ...

  9. 2018.08.28 集合堆栈机(模拟+STL)

    描述 中学数学里集合的元素往往是具体的数字,比如A = {1,2,3},B = {}(空集)等等.但是要特别注意,集合的元素也可以是另一个集合,比如说C = {{}},即说明C有且仅有一个元素--空集 ...

随机推荐

  1. Java之JSON操作(gson)

    使用gson包操作JSON数据. 依赖包:gson-2.8.2.jar <dependency> <groupId>com.google.code.gson</group ...

  2. 我的Linux系统九阴真经

    在今天,互联网的迅猛发展,科技技术也日新月异,各种编程技术也如雨后春笋一样,冒出尖来了.各种创业公司也百花齐放百家争鸣,特别是针对服务行业,新型互联网服务行业,共享经济等概念的公司,越来越多.有一些公 ...

  3. linux sed的一些技巧

    sed -i '$a # This is a test' regular_express.txt 由於 $ 代表的是最后一行,而 a 的动作是新增,因此该文件最后新增『# This is a test ...

  4. echarts之简单的入门——【一】做个带时间轴的柱状统计图

    百度Echarts 官网首页  http://echarts.baidu.com/ 配置项手册 http://echarts.baidu.com/option.html#title GL配置项手册 h ...

  5. 微信access_token请求之简单缓存方法封装

    还有东西要搞,就直接上代码 function.php <?php // 一个好玩的 curl 类 // https://github.com/metowolf/Meting/blob/maste ...

  6. VMWare 安装 Linux

    参考 : http://www.aboutyun.com/thread-6780-1-1.html     这的是很详细.赞一下 我这里就简化一下. 1 下载: VMWare :  https://d ...

  7. codeforces 777C

    C.Alyona and Spreadsheet During the lesson small girl Alyona works with one famous spreadsheet compu ...

  8. 自学Linux Shell13.3-获得用户输入(read命令)

    Bash shell提供了一些不同的方法来从用户处获得数据,包括以下3中方法: 命令行参数(添加在名利后面的数据) 命令行选项(可修改命令行为的单个字母)主要getopt.getopts命令 直接从键 ...

  9. [poj3278]抓住那头牛

    题目描述 Farmer John has been informed of the location of a fugitive cow and wants to catch her immediat ...

  10. sql server 小技巧(8) visual studio 2013里使用Sql server compact 4.0及发布问题处理

    1. 安装 Microsoft SQL Server Compact 4.0  https://www.microsoft.com/zh-cn/download/confirmation.aspx?i ...