题意:

连续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的更多相关文章

  1. 2019CCPC秦皇岛I题 Invoker(DP)

    Invoker Time Limit: 15000/12000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total ...

  2. HDU6739 2019CCPC秦皇岛赛区 I. Invoker

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=6739思路:暴力dp           一个special skill最多有6种排列组合          ...

  3. 2019ccpc秦皇岛/Gym102361 D - Decimal 签到

    题意: 给定n,判断1/n是否在十进制下无限循环 题解:判断n的是否包含除2,5以外的因数即可 #include<iostream> #include<cstdio> #inc ...

  4. 2019ccpc秦皇岛/Gym102361 F Forest Program 仙人掌上dfs

    题意: 某地沙漠化严重,沙漠里长了很多仙人掌,现在要让你删掉仙人掌的一些边让它的所有连通分量都是树,就完成了沙漠绿化(什么鬼逻辑?)让你计算删边的方案数. 仙人掌是一种特殊的图,它的每一条边只属于1或 ...

  5. 2019-ccpc秦皇岛现场赛

    https://www.cnblogs.com/31415926535x/p/11625462.html 昨天和队友模拟了下今年秦皇岛的区域赛,,,(我全程在演 题目链接 D - Decimal 签到 ...

  6. 2019CCPC秦皇岛赛区(重现赛)- I

    链接: http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1009&cid=872 题意: 在 dota2 中有一个叫做祈求 ...

  7. 2019CCPC秦皇岛自我反省&部分题解

    练了一年半了,第一次打CCPC,险些把队友坑了打铁,最后也是3题危险捡了块铜. 非常水的点双连通,我居然不相信自己去相信板子,唉,结果整来整去,本来半个小时能出的题,整到了3个小时,大失误呀,不然就可 ...

  8. 2018 CCPC 秦皇岛 I (状压DP)

    题意: 首先t组数据  (t<=5),一个n代表有n件东西,每个东西可以代表两个物品,商品或者袋子,每个都有个值,如果这个要代表袋子的话,当前就代表是容量,而且必须把其他几件不是袋子的物品放一些 ...

  9. 2019CCPC秦皇岛 E题 Escape(网络流)

    Escape Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Su ...

随机推荐

  1. [CSP-S模拟测试]:旅行(数学+线段树)

    题目传送门(内部题12) 输入格式 第一行,一个整数$n$,代表树的点数.第二行,$n$个整数,第$i$个整数是$B_i$,描述排列$B$.接下来$n−1$行,每行两个整数$u,v$,描述一条树边$( ...

  2. jdk8的stream流式计算的操作

    jdk8之后增加了流式计算,现在根据学习了流式计算,并把过程记录下来: Person.java的bean package com.zhang.collectordemo; /** * @program ...

  3. Majordomo Info VGER.KERNEL.ORG

    This is VGER.KERNEL.ORG Majordomo Info The mission of vger.kernel.org is to provide email list servi ...

  4. 在线常用库 + API手册

    以下链接经过本人测试,均可正常访问 jQuery: http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js bootsrap: http://app ...

  5. python函数装饰器详解

    python装饰器(fuctional decorators)简单来说就是修改其他函数的函数. 这样的函数需要满足两个个条件: 1.不能修改原函数的源代码 2.不能改变原函数的调用方式 需要达到的效果 ...

  6. html中a标签伪类的优先级与顺序

    /** 这四个伪类的优先级相同,前一个会覆盖后一个 建议书写顺序: lvha => love hate(好记) */ a:link { color: red; } a:visited { col ...

  7. 面试题:实现call、apply、bind

    面试题:实现call.apply.bind 实现bind module.exports = function(Tcontext, ...args) { let globalThis = typeof ...

  8. JS同行绑定事件

    <td><a class="blue" href="javascript:void(0);" class="blue" s ...

  9. 【记录】spring boot 整合mybatis 实体类返回日期格式化

    1:首先将返回的实体类的时间由Date类型 换成String类型 2:将mapper.xml里的created_time 不设置类型,并将查询字段时间格式化,注意此次查询需要使用别名 不然返回查不到此 ...

  10. 六、SpringBoot配置@ConfigurationProperties与@Value区别

    1.@Value的使用 三种用法 // ${key} 从环境变量.配置文件中取值 @Value("${person.last-name}") private String last ...