2017CCPC秦皇岛 C题Crusaders Quest&&ZOJ3983【模拟+STL】
链接: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】的更多相关文章
- 2018 CCPC秦皇岛 C题 Crusader Quest
Crusaders Quest is an interesting mobile game. A mysterious witch has brought great darkness to the ...
- 2017CCPC秦皇岛 L题One-Dimensional Maze&&ZOJ3992【模拟】
链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3992 题意: 走迷宫,一个一维字符串迷宫,由'L'.'R'组成,分别 ...
- 2017CCPC秦皇岛 A题Balloon Robot&&ZOJ3981【模拟】
题意: 一个机器人在长为M的圆形轨道上送气球,当机器人到达M号点的时候下一站会回到1号点,且全程不会停止运动.现在在长为M的轨道上有N个队伍,队伍会在某个时间做需要一个气球,机器人需要送过去.一共有P ...
- 2017CCPC秦皇岛 M题Safest Buildings&&ZOJ3993【复杂模拟】
题意: 给出两个半径R,r,R表示第一次的大圈半径,r表示第二次的小圈半径.第一次大圈的圆心位于(0,0),第二次小圈的圆心未知,但在大圈内,给你一个n,然后给出n个屋子的位置,问这些屋子中,第二次在 ...
- 2017CCPC秦皇岛 E题String of CCPC&&ZOJ3985【模拟】
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3985 题意: 给定一个字符串,由c和p组成,可以添加c或者p. 串中出现一 ...
- 2017CCPC秦皇岛 H题Prime Set&&ZOJ3988
题意: 定义一种集合,只有两个数,两个数不同且加起来为素数.要从n个数里抽出数字组成该集合(数字也可以是1~n,这个好懵圈啊),要求你选择最多k个该种集合组成一个有最多元素的集合,求出元素的数量. 思 ...
- 2017CCPC秦皇岛 G题Numbers&&ZOJ3987【大数】
题意: 给出一个数n,现在要将它分为m个数,这m个数相加起来必须等于n,并且要使得这m个数的或值最小. 思路: 从二进制的角度分析,如果这m个数中有一个数某一位为1,那么最后或起来这一位肯定是为1的, ...
- ZOJ 3983 Crusaders Quest(思维题)
C - Crusaders Quest Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu S ...
- 2018.08.28 集合堆栈机(模拟+STL)
描述 中学数学里集合的元素往往是具体的数字,比如A = {1,2,3},B = {}(空集)等等.但是要特别注意,集合的元素也可以是另一个集合,比如说C = {{}},即说明C有且仅有一个元素--空集 ...
随机推荐
- Codeforces976D Degree Set 【构造】
题目大意:构造一个点数为dn+1的无向图,无向图中点的度数的集合等于给出的集合d. 题目分析: 当n=0的时候,一个点即可. 当n=1的时候,答案是一个包含d1+1个点的完全图. 否则将d2~dn-1 ...
- Leetcode 191.位1的个数 By Python
编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量). 示例 : 输入: 11 输出: 3 解释: 整数 11 的二进制表示为 00000000000 ...
- 架构师成长之路2.1-PXE+Kickstart原理
点击返回架构师成长之路 架构师成长之路2.1-PXE+Kickstart原理 PXE+Kickstart 主要用于在公司内网批量安装新服务器系统,这极大地简化了用光盘重复安装Linux操作系统的过程, ...
- android-support-v4.jar 免积分下载
资源名称:android扩展插件 android-support-v4.jar 资源大小:137KB 上传日期:2012-10-08 资源积分:1 下载次数:136 电信下载地址:http://www ...
- 学习Spring Boot:(二十三)Spring Boot 中使用 Docker
前言 简单的学习下怎么在 Spring Boot 中使用 Docker 进行构建,发布一个镜像,现在我们通过远程的 docker api 构建镜像,运行容器,发布镜像等操作. 这里只介绍两种方式: 远 ...
- 洛谷 P2059 [JLOI2013]卡牌游戏 解题报告
P2059 [JLOI2013]卡牌游戏 题意 有\(n\)个人玩约瑟夫游戏,有\(m\)张卡,每张卡上有一个正整数,每次庄家有放回的抽一张卡,干掉从庄家起顺时针的第\(k\)个人(计算庄家),干掉的 ...
- Azure HDInsight 上的 Spark 群集配合自定义的Python来分析网站日志
一.前言:本文是个实践博客,演示如何结合使用自定义库和 HDInsight 上的 Spark 来分析日志数据. 我们使用的自定义库是一个名为 iislogparser.py的 Python 库. 每步 ...
- 收藏:Non-direct与direct ByteBuffer区别
相信大家都知道,但是两者的区别在什么地方呢?在不同的环境下采用哪种类型的ByteBuffer会更有效率呢?先解释一下两者的区别:Non-directByteBuffer内存是分配在堆上的,直接由Jav ...
- 关于使用vw单位适配H5项目(二)
一些比较小的H5页面,我觉得全没有必要一定要使用框架的,比如vue和react之类的,我觉得原生的js,html5也可以写好移动端. 最近刚好要赶10多个h5页面,适配移动端的,各种手机型号都要适配, ...
- 有趣的canvas
最近看了一本canvas的书,里面对canvas的一些基本知识讲的很详细.相比于一个div加点颜色,我臭屁的觉得使用canvas画长方形正方形圆形之类的是大才小用. 下面我放几个canvas还不错的功 ...