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 ...
随机推荐
- AGC024B Backfront
题目大意 给你一个1~n的排列 你有两个操作:将一个数移到最后或将一个数移到最前 问将排列排序最少要几次操作 分析 年纪大了,脑子不行了.. 实际我们只需求出对与一段连续的数它在排列中已经有序的最长长 ...
- mysql的windows客户端链接远程全套案例
我是linux 的服务器,navicat12的客户端, 开始链接的时候需要开服务器上得对外爆漏端口 3306,方法: 添加指定需要开放的端口: firewall-cmd --add-port=/tcp ...
- Design:设计(活动)百科
ylbtech-Design:设计(活动)百科 设计是把一种设想通过合理的规划.周密的计划.通过各种感觉形式传达出来的过程.人类通过劳动改造世界,创造文明,创造物质财富和精神财富,而最基础.最主要的创 ...
- JarvisOJ 逆向Writeup
1. 爬楼梯 先运行apk,查看具体的功能 爬一层楼是可以点击的,爬到了,看FLAG是不可以点击的.我们可以大致的了解到到了具体的楼层才可以看到flag,多次打开软件,楼层数目是随机的. 用APKID ...
- SetWindowsHookEx 其他进程的 记录
SetWindowsHookEx( WH_GETMESSAGE,CallWndProc, HInstance, h2); WH_GETMESSAGE 这个类型 hook 其他窗体的 线程是正常的 ...
- Centos7从零开始】Centos 下硬盘分区的最佳方案
https://www.cnblogs.com/chen1970/p/11071590.html 在对硬盘进行分区前,应该先弄清楚计算机担负的工作及硬盘的容量有多大,还要考虑到以下几个问题: 第一点也 ...
- bat 需注意
1. 注释 :: 注释内容,下一行不能是空行,必须是语句否则报错. goto blabla rem 注释内容,则无上述限制. goto blabla 2. if rem 1. 要注意左括号前的空格以及 ...
- Tex与PDF
由Knuth Donald开发的tex.web会生成DVI文件,DVI也是Knuth自己实现的(虽然概念是其他人提出的)一种文件格式,目标是与设备无关. 通过dvips程序可以将DVI格式转化成Pos ...
- Redis 系列(02)数据结构
目录 Redis 系列(02)数据结构 Redis 系列目录 1. String 1.1 基本操作 1.2 数据结构 1.3 Redis数据存储结构 2. Hash 2.1 基本操作 2.2 数据结构 ...
- (4.10)sql server导入导出
SQL Server快速导入数据分享 核心参考:官网~~https://docs.microsoft.com/zh-cn/sql/relational-databases/import-export/ ...