【个人训练】(ZOJ3983)Crusaders Quest
题意分析
和祖玛类似的那种玩法。不过是限定了九个字符,问最好情况下有几次三连碰。
暴力穷举即可。具体的做法是,先把所有“成块”的字符记录下来,然后一个一个删,再继续这样子递归做下去。考虑到就只有9个字符,内存和时间的占用不会太高。
这里倒是遇到了盲点:之前不清楚erase的用法。
代码
#include <bits/stdc++.h>
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
int ans=0;
void solve(string nowstr,int cnt)
{
//cout<<nowstr<<endl;
vector<pair<int,int> > vec;
int len=nowstr.length();
if(!len) ans=max(ans,cnt);
else
{
int b=0;
for(int i=0;i!=len;++i)
{
if(nowstr[b]!=nowstr[i])
{
vec.push_back(make_pair(b,i));
b=i;
}
}
vec.push_back(make_pair(b,len));
for(auto iter:vec)
{
string tmpstr=nowstr;
//cout<<iter.first<<" "<<iter.second<<endl;
tmpstr.erase(tmpstr.begin()+iter.first,tmpstr.begin()+iter.second);
if(iter.second-iter.first>=3)
solve(tmpstr,cnt+1);
else solve(tmpstr,cnt);
}
}
return;
}
int main()
{
int T; cin>>T;
while(T--)
{
ans=0;
string str; cin>>str;
solve(str,0);
cout<<ans<<endl;
}
return 0;
}
【个人训练】(ZOJ3983)Crusaders Quest的更多相关文章
- ZOJ 3983 Crusaders Quest(思维题)
C - Crusaders Quest Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu S ...
- 2017CCPC秦皇岛 C题Crusaders Quest&&ZOJ3983【模拟+STL】
链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3983 题意: 给定9个血槽,有三种物品,每次可以把连续相同的物品抵消 ...
- ZOJ 3983 - Crusaders Quest - [DFS]
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3983 题意: 给出一个长度为 $9$ 的字符串 $s$,且 $s ...
- zoj 3983 Crusaders Quest 思维+枚举
题目链接 这道题意思是: 给你一个长度为9的字符串,且只有3个a.3个g.3个o 问,你可以选择删除一段连续的串或者单个的字符也可以不删,最多会出现几个三子相连的子串 比如:agoagoago只有将两 ...
- ZOJ - 3983 - Crusaders Quest(思维 + 暴力)
题意: 给出一个字符串,长度为9,包含三种各三个字母"a","g","o",如果一次消除连续三个一样的分数+1,消完自动向左补齐 其中可以消 ...
- 2018 CCPC秦皇岛 C题 Crusader Quest
Crusaders Quest is an interesting mobile game. A mysterious witch has brought great darkness to the ...
- 2017 CCPC Qinhuangdao Site
A. Balloon Robot 假设机器人$0$时刻位于$0$号位置,那么每个气球所需的时间为$(s_a-b)\bmod m$. 将所有气球按这个时间排序,枚举每个气球的时间作为偏移量,得出最优解即 ...
- 决策树模型比较:C4.5,CART,CHAID,QUEST
(1)C4.5算法的特点为: 输入变量(自变量):为分类型变量或连续型变量. 输出变量(目标变量):为分类型变量. 连续变量处理:N等分离散化. 树分枝类型:多分枝. 分裂指标:信息增益比率gain ...
- SSD框架训练自己的数据集
SSD demo中详细介绍了如何在VOC数据集上使用SSD进行物体检测的训练和验证.本文介绍如何使用SSD实现对自己数据集的训练和验证过程,内容包括: 1 数据集的标注2 数据集的转换3 使用SSD如 ...
随机推荐
- pocsuite 实现一个verify检测功能
今天在测试中发现一个命令执行漏洞,尝试用创宇的pocsuite框架实现.说实话,这玩意儿确实没有自己写POC顺手,非得就着他的标准来,就很难受,以至于耽误了很多时间在规范上.. 影响参数后直接用||连 ...
- nodejs protobuff node-protobuf c++ windows扩展安装笔记
https://www.npmjs.com/package/node-protobuf 按照作者所说的办法在windows平台安装的办法,先到google的github下载2.6.1版本的protob ...
- PAT1067. Sort with Swap(0, *) (25) 并查集
PAT1067. Sort with Swap(0, *) (25) 并查集 题目大意 给定一个序列, 只能进行一种操作: 任一元素与 0 交换位置, 问最少需要多少次交换. 思路 最优解就是每次 0 ...
- 菜鸟笔记 -- Chapter 6.3 对象
6.3 对象 Java是一门面向对象的程序设计语言,对象是由类抽象出来的,所有的问题都是通过对象来处理的,对象可以操作类的属性和方法解决相应的问题,所以了解对象的产生.操作和生存周期对学习Java语言 ...
- Object C学习笔记20-结构体(转)
在学习Object C中的过程中,关于struct的资料貌似非常少,查阅了C方面的资料总结了一些学习心得! 一. 定义结构 结构体是一种数据类型的组合和数据抽象.结构体的定义语法如下: struct ...
- C++的句柄类
上一篇文件介绍了关于C++代理类的使用场景和实现方法,但是代理类存在一定的缺陷,就是每个代理类会创建一个新的对象,无法避免一些不必要的内存拷贝,本篇文章引入句柄类,在保持代理类多态性的同时,还可以避免 ...
- MySql Connector/C++8简介
MySql Connector/C++8是一个用于连接MySQL服务器的C++应用程序.Connector/C++8可用于访问实现文档存储的 MySQL服务器,或者使用SQL查询以传统方式访问.它支持 ...
- ABAP术语-Error Message
Error Message 原文:http://www.cnblogs.com/qiangsheng/archive/2008/01/30/1058283.html Information from ...
- MFC下的DLL编程学习
1.DLL库与LIB库对比: 静态链接库Lib(Static Link Library),是在编译的链接阶段将库函数嵌入到应用程序的内部.如果系统中运行的多个应用程序都包含所用到的公共库函数,则必然造 ...
- php 无限参数方法
在很多项目开发中经常会用到共用方法但是参数不固定,每个参数都创建一遍阅读性不好,后期维护也麻烦,PHP有获取传入参数的方法,记录参考一下.这里有两个方法 <?php 方法一: #不指定参数个数方 ...