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 ...
随机推荐
- 如何利用nginx实现负载均衡(总结)
如何利用nginx实现负载均衡(总结) 一.总结 一句话总结: 推荐使用nginx七层(应用层)负载均衡的实现:配置那是相当的简单 1.nginx配置实例? |||-begin #这里的域名要和下面p ...
- Django中执行原生SQL语句【新编辑】
参考我的个人博客 这部分迁移到了个人博客中:Django中执行原生SQL语句 这里需要补充一下,还有一个extra方法: ret = models.Student.objects.all().extr ...
- sudo su 和sudo -s的区别
sudo su 和 sudo -s都是切换到root用户,不同的是: sudo su 环境用的是目标用户(root)的环境 sudo -s 环境用的是当前用户本身的环境
- 测开之路三十九:js基础
js的两种使用方式 第一种使用方式:单独写js文件 在static下新建一个js文件并写入内容 alert('这是一个弹窗'); 在html文件里面,用script标签引入 <script sr ...
- git push github 免输入账号和密码方法
git config --global credential.helper store 打开~/.gitconfig文件,会发现多了一项: [credential] helper = store 此时 ...
- PAT 2019-3 7-1 Sexy Primes
Description: Sexy primes are pairs of primes of the form (p, p+6), so-named since "sex" is ...
- Ptyhon 合并列表
2019-08-25 list1 = [91, 95, 97, 99] list2 = [92, 93, 96, 98] 合并后得到:[91, 95, 97, 99 , 92, 93, 96, 9 ...
- 第四节 RabbitMQ在C#端的应用-客户端连接
原文:第四节 RabbitMQ在C#端的应用-客户端连接 版权声明:未经本人同意,不得转载该文章,谢谢 https://blog.csdn.net/phocus1/article/details/87 ...
- 卸载 Bash On Ubuntu On Windows
1.打开cmd,输入lxrun /uninstall /full,然后根据提示输入y即可开始卸载. 已失效
- shell使用lftp同步yum仓库