2019ccpc秦皇岛/Gym102361 I - Invoker dp
题意:
连续3个特定的按键(在这3个中不要求顺序)能使出某个技能,使出不同技能所需要的按键可以重叠,给你一个技能序列,问你最少花费多少次按键能按顺序使出这些招数。
题解:
dp,dp[i][j]代表使出第i个技能后,最后3个按键组合是j的最少需要按键数,暴力枚举即可。
思路比较绕,实际码的时候很自闭。
#include<bits/stdc++.h>
using namespace std;
#define MAXN 100000+50
char s[MAXN];
string jineng[][]={
{"QQQ","QQQ","QQQ","QQQ","QQQ","QQQ"},
{"QQW","QQW","QWQ","QWQ","WQQ","WQQ"},
{"QQE","QQE","QEQ","QEQ","EQQ","EQQ"},
{"WWW","WWW","WWW","WWW","WWW","WWW"},
{"QWW","QWW","WQW","WQW","WWQ","WWQ"},
{"WWE","WWE","WEW","WEW","EWW","EWW"},
{"EEE","EEE","EEE","EEE","EEE","EEE"},
{"QEE","QEE","EQE","EQE","EEQ","EEQ"},
{"WEE","WEE","EEW","EEW","EWE","EWE"},
{"QWE","QEW","WEQ","WQE","EWQ","EQW"}
};
//CXZTFDB
int num[];
int dp[MAXN][];
int get_dif(int id1,int id2,int pos1,int pos2)
{
if(jineng[id1][pos1][]==jineng[id2][pos2][]&&jineng[id1][pos1][]==jineng[id2][pos2][]
&&jineng[id1][pos1][]==jineng[id2][pos2][])
return ;
if(jineng[id1][pos1][]==jineng[id2][pos2][]&&jineng[id1][pos1][]==jineng[id2][pos2][])
return ;
if(jineng[id1][pos1][]==jineng[id2][pos2][]) return ;
return ;
}
int main()
{
int ans;
scanf("%s",s);
int len=strlen(s);
ans=len*;
memset(num,,sizeof(num));
num['Y']=,num['V']=,num['G']=,num['C']=,
num['X']=,num['Z']=,num['T']=,num['F']=,
num['D']=,num['B']=;
for(int i=;i<len;++i)
for(int j=;j<;++j)
dp[i][j]=len*;
for(int i=;i<;++i) dp[][i]=;
for(int i=;i<len;++i)
for(int j=;j<;++j)
for(int k=;k<;++k)
{
dp[i][j]=min(dp[i][j],dp[i-][k]+get_dif(num[s[i-]],num[s[i]],k,j));
}
for(int i=;i<;++i) ans=min(ans,dp[len-][i]);
cout<<ans+len<<endl;
}
2019ccpc秦皇岛/Gym102361 I - Invoker dp的更多相关文章
- 2019CCPC秦皇岛I题 Invoker(DP)
Invoker Time Limit: 15000/12000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total ...
- HDU6739 2019CCPC秦皇岛赛区 I. Invoker
题目:http://acm.hdu.edu.cn/showproblem.php?pid=6739思路:暴力dp 一个special skill最多有6种排列组合 ...
- 2019ccpc秦皇岛/Gym102361 D - Decimal 签到
题意: 给定n,判断1/n是否在十进制下无限循环 题解:判断n的是否包含除2,5以外的因数即可 #include<iostream> #include<cstdio> #inc ...
- 2019ccpc秦皇岛/Gym102361 F Forest Program 仙人掌上dfs
题意: 某地沙漠化严重,沙漠里长了很多仙人掌,现在要让你删掉仙人掌的一些边让它的所有连通分量都是树,就完成了沙漠绿化(什么鬼逻辑?)让你计算删边的方案数. 仙人掌是一种特殊的图,它的每一条边只属于1或 ...
- 2019-ccpc秦皇岛现场赛
https://www.cnblogs.com/31415926535x/p/11625462.html 昨天和队友模拟了下今年秦皇岛的区域赛,,,(我全程在演 题目链接 D - Decimal 签到 ...
- 2019CCPC秦皇岛赛区(重现赛)- I
链接: http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1009&cid=872 题意: 在 dota2 中有一个叫做祈求 ...
- 2019CCPC秦皇岛自我反省&部分题解
练了一年半了,第一次打CCPC,险些把队友坑了打铁,最后也是3题危险捡了块铜. 非常水的点双连通,我居然不相信自己去相信板子,唉,结果整来整去,本来半个小时能出的题,整到了3个小时,大失误呀,不然就可 ...
- 2018 CCPC 秦皇岛 I (状压DP)
题意: 首先t组数据 (t<=5),一个n代表有n件东西,每个东西可以代表两个物品,商品或者袋子,每个都有个值,如果这个要代表袋子的话,当前就代表是容量,而且必须把其他几件不是袋子的物品放一些 ...
- 2019CCPC秦皇岛 E题 Escape(网络流)
Escape Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Su ...
随机推荐
- STM32串口USART1的使用方法和程序
通用同步异步收发器(USART)提供了一种灵活的方法来与使用工业标准NR 异步串行数据格式的外部设备之间进行全双工数据交换. USART利用分数波特率发生器提供宽范围的波特率选择,支持同步单向通信和半 ...
- Python 进阶_闭包 & 装饰器
目录 目录 闭包 函数的实质和属性 闭包有什么好处 小结 装饰器 更加深入的看看装饰器的执行过程 带参数的装饰器 装饰器的叠加 小结 装饰器能解决什么问题 小结 闭包 Closure: 如果内层函数引 ...
- Asp.Net Core 第02局:Program
总目录 前言 本文介绍Program,它包含程序的入口Main方法.从这里开始... 环境 1.Visual Studio 2017 2.Asp.Net Core 2.2 开局 第一手:Program ...
- 读取 appsettings.json
Appsettings.json 配置: 个配置文件就是一个json文件,并且是严格的json文件,所有的属性都需要添加“”引号.下图是一个常规的代码示例: {"UrlString" ...
- c++primer,自定义一个复数类
#include<iostream> #include<string> #include<vector> #include<algorithm> #in ...
- Django-自定义用户模型
Django最方便的一点,是自带用户系统,但有些情况下,不符合项目需求, 原因1.我们有时候需要自定义一些字段,或者删除Django自带字段,2.我们有时候需要定义哪些字段是必填的,登陆时的用户名是哪 ...
- spring aop思想
- VB - 错误处理
1.最常见的错误是运行时错误,也就是说错误在脚本正在运行的时候发生,是脚本试图进行非法操作的结果.例如零被作为除数.在vbs中,任何运行时错误都是致命的,此时,脚本将停止运行,并在屏幕上显示一个错误消 ...
- jvm学习(1) 总体篇
1.1 Java体系构成 JAVA体系包括四个方面: JAVA编程语言,编辑的文件为Java源代码,文件格式为(.java): JAVA类文件格式,编译后文件格式为(.class): JA ...
- SCAU大二上Java综合性实验
一.题目要求 实验内容: 1. 已经提供的原始数据:班级成绩单文件 该文件为文本文件,存储某个班的所有学生某门课程的成绩. 例如:2012级计算机科学与技术8班-面向对象程序设计.txt 文件中每行存 ...