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;
    }

    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    贪婪匹配
    洛谷P1219 [USACO1.5]八皇后 Checker Challenge【搜索回溯】
    【数据结构笔记】栈
    数据结构课堂笔记
    DAY1
    小记2020.1.10
    c++复习
    c++用流控制成员函数输出数据
    c++用控制符控制输出格式
    "中国东信杯"广西大学第二届程序设计竞赛E Antinomy与红玉海(二分)
  • 原文地址:https://www.cnblogs.com/ldudxy/p/10411852.html
Copyright © 2011-2022 走看看