题意:给出一个字符串,去掉第i位的花费为a[i],求使字符串中子串不含hard的最小代价。

  题解:这题的思路还是比较套路的,

        dp[i][kd]两维,kd=0表示不含d的最小花费,1表示不含rd的,2表示不含ard的,3表示不含hard的

     那么转移方程就显而易见了,一言概之就是如果前面没有,我这也要没有,就这位一定要去,否则不用去

  代码如下:

  

#include<bits/stdc++.h>
using namespace std; int n,a[];
char s[];
long long dp[][]; int main()
{
scanf("%d",&n);
scanf("%s",s+);
for(int i=;i<=n;i++)
{
scanf("%d",&a[i]);
}
for(int i=n;i>=;i--)
{
dp[i][]=dp[i+][];
dp[i][]=dp[i+][];
dp[i][]=dp[i+][];
dp[i][]=dp[i+][];
if(s[i]=='d')
{
dp[i][]=dp[i+][]+a[i];
dp[i][]=min(dp[i+][],dp[i+][]);
}
if(s[i]=='r')
{
dp[i][]=dp[i+][]+a[i];
dp[i][]=min(dp[i+][],dp[i+][]);
}
if(s[i]=='a')
{
dp[i][]=dp[i+][]+a[i];
dp[i][]=min(dp[i+][],dp[i+][]);
}
if(s[i]=='h')
{
dp[i][]=dp[i+][]+a[i];
}
}
long long ans=;
ans=min(min(dp[][],dp[][]),min(dp[][],dp[][]));
printf("%lld\n",ans);
} #include<bits/stdc++.h>
using namespace std; int n,a[];
char s[];
long long dp[][]; int main()
{
scanf("%d",&n);
scanf("%s",s+);
for(int i=;i<=n;i++)
{
scanf("%d",&a[i]);
}
for(int i=n;i>=;i--)
{
dp[i][]=dp[i+][];
dp[i][]=dp[i+][];
dp[i][]=dp[i+][];
dp[i][]=dp[i+][];
if(s[i]=='d')
{
dp[i][]=dp[i+][]+a[i];
dp[i][]=min(dp[i+][],dp[i+][]);
}
if(s[i]=='r')
{
dp[i][]=dp[i+][]+a[i];
dp[i][]=min(dp[i+][],dp[i+][]);
}
if(s[i]=='a')
{
dp[i][]=dp[i+][]+a[i];
dp[i][]=min(dp[i+][],dp[i+][]);
}
if(s[i]=='h')
{
dp[i][]=dp[i+][]+a[i];
}
}
long long ans=;
ans=min(min(dp[][],dp[][]),min(dp[][],dp[][]));
printf("%lld\n",ans);
}

CF1096D Easy Problem(DP)的更多相关文章

  1. CF1096D Easy Problem

    题目地址:CF1096D Easy Problem 比赛时高二dalaoLRZ提醒我是状压,然而,我还是没AC (汗 其实是一道很基础的线性dp \(f_{i,j}\) 表示序列第 \(i\) 个字符 ...

  2. D. Easy Problem dp(有衔接关系的dp(类似于分类讨论) )

    D. Easy Problem dp(有衔接关系的dp(类似于分类讨论) ) 题意 给出一个串 给出删除每一个字符的代价问使得串里面没有hard的子序列需要付出的最小代价(子序列不连续也行) 思路 要 ...

  3. CF1096:D. Easy Problem(DP)

    Vasya is preparing a contest, and now he has written a statement for an easy problem. The statement ...

  4. CF1096D Easy Problem(DP)

    貌似最近刷了好多的CF题…… 题目链接:CF原网 洛谷 题目大意:有一个长度为 $n$ 的字符串 $s$,删除第 $i$ 个字符需要代价 $a_i$.问使得 $s$ 不含有子序列(不是子串)" ...

  5. Codeforces 1096D - Easy Problem - [DP]

    题目链接:http://codeforces.com/problemset/problem/1096/D 题意: 给出一个小写字母组成的字符串,如果该字符串的某个子序列为 $hard$,就代表这个字符 ...

  6. HDU 4359——Easy Tree DP?——————【dp+组合计数】

    Easy Tree DP? Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  7. 线段树:CDOJ1591-An easy problem A (RMQ算法和最简单的线段树模板)

    An easy problem A Time Limit: 1000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Pr ...

  8. HDU 4359 Easy Tree DP?

    Easy Tree DP? Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  9. UVA-11991 Easy Problem from Rujia Liu?

    Problem E Easy Problem from Rujia Liu? Though Rujia Liu usually sets hard problems for contests (for ...

随机推荐

  1. 求数组中的逆序对的数量----剑指offer36题

    在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数: 如数组{7,5,6,4},逆序对总共有5对,{7,5},{7,6},{7, ...

  2. 疯狂JAVA——第三章 数据类型和运算符

    3.1注释 1.单行注释 2.多行注释 3.文档注释——文档注释以斜线后紧跟两个星号(/**)开始,以星号后紧跟一个斜线结束(*/),中间部分都是文档注释,会被提取到API文档中. API文档类似于产 ...

  3. 网站连接数据库连接不上原因是ip地址与端口号格式不对

    192.168.1.1:8080这样连接一直出错, 后来改为192.168.1.1,8080就可以了 原因是格式不对,把冒号给为逗号就可以了

  4. cdoj841-休生伤杜景死惊开 (逆序数变形)【线段树 树状数组】

    http://acm.uestc.edu.cn/#/problem/show/841 休生伤杜景死惊开 Time Limit: 3000/1000MS (Java/Others)     Memory ...

  5. SpringMVC工作原理2(代码详解)

    图1.流程图 1.当一个请求(request)过来,进入DispatcherServlet中,里面有个方法叫 doDispatch()方法 里面包含了核心流程 源码如下: 4.然后往下看getHand ...

  6. ueditor使用注意

    问题1:后端配置项没有正常加载,上传插件不能正常使用! 我用的是开发版,1.4.3.3 .Net版 网上查了很多,后来发现只是配置的问题而已. 1.在根目录下:config.json 其中有Img上传 ...

  7. 配置springMVC

    1.web.xml 前端控制器 配置规则:*.do: 拦截请求路径所有的后缀为.do;/* : 拦截所有, .jsp页面也会拦截; 不会使用此配置, 因为视图会无法跳转;/ : 拦截所有, .jsp页 ...

  8. Spark设计思想浅析

    Spark is no rocket science!——博主 了解分布式计算的朋友,一定知道DAG这样一个概念.其实我接触DAG也是在学习MapReduce时了解到的.(具体可查阅<大数据日知 ...

  9. 品味性能之道<一>:性能测试思维与误区

           <java performance><品悟性能优化 oracle><面向模式的软件架构-模式系统>读书笔记应用调优分享.      性能问题的解决,首 ...

  10. 低配NOSQL

    东西写的太简单了 都不好意思说是NOSQL 其实就是STL 的map容器记录了写入的信息 解析了下数据仅此. 分析的时候想了很多 比如学习redis的自写hash,动态调整hash表容量. 比如右值或 ...