zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 57D(DP,思维)

    #include<bits/stdc++.h>
    using namespace std;
    char s[100007];
    long long a[100007];
    long long dp[100007][4];
    int main(){
        int n;
        scanf("%d",&n);
        scanf("%s",s);
        for(int i=0;i<n;i++)
            scanf("%lld",&a[i]);
        for(int i=0;i<n;i++){
            dp[i][0]=dp[i-1][0];
            dp[i][1]=dp[i-1][1];
            dp[i][2]=dp[i-1][2];
            dp[i][3]=dp[i-1][3];
            if(s[i]=='h')
                dp[i][0]+=a[i],dp[i][1]=min(dp[i-1][0],dp[i-1][1]);//字符串中没有长度为1的子序列付出的代价
            else if(s[i]=='a')
                dp[i][1]+=a[i],dp[i][2]=min(dp[i-1][1],dp[i-1][2]);//字符串中没有长度为2的子序列付出的代价
            else if(s[i]=='r')
                dp[i][2]+=a[i],dp[i][3]=min(dp[i-1][2],dp[i-1][3]);//字符串中没有长度为3的子序列付出的代价
            else if(s[i]=='d')
                dp[i][3]+=a[i];//字符串中没有hard付出的代价
        }
        long long ans=1e18;
        for(int i=0;i<4;i++)
            ans=min(ans,dp[n-1][i]);
        printf("%lld",ans);
        return 0;
    }

    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    004.Jquery库的用法
    update 死锁问题
    Nginx负载均衡模式
    微信公众号开启服务器配置 JAVA
    mybatis plus + AOP 多数据源自动切换
    mybatis plus 快速上手
    mybits 笔记
    java 异步
    node 垃圾回收机制
    常用正则
  • 原文地址:https://www.cnblogs.com/ldudxy/p/10411852.html
Copyright © 2011-2022 走看看