蓝桥杯2023年-松散子序列(dp)

题目描述

给定一个仅含小写字母的字符串 s ,假设 s 的一个子序列 t 的第 i 个字符 对应了原字符串中的第 pi 个字符。我们定义 s 的一个松散子序列为:对于 i > 1 总是有 pi − pi−1 ≥ 2 。设一个子序列的价值为其包含的每个字符的价值之和 ( a ∼ z 分别为 1 ∼ 26 ) 。 

求 s 的松散子序列中的最大价值。 

思路

只要想到要用dp代码就不难写了(当然还需要先读懂题)。

dp[i]表示前i个字母可以取到的最大价值。

则分成两种情况:

1、取第i个字母:则最大值为dp[i-2]+s[i]-'a'+1;

2、不取第i个字母:则最大值为dp[i-1]

两种情况取最大值即可。

代码

#include<bits/stdc++.h>
using namespace std;
// #define int long long
// #define pii pair<long long,long long>
int dp[1000006];
signed main(){
    string s;cin>>s;
    int n=s.size();
    dp[0]=s[0]-'a'+1;
    dp[1]=max(dp[0],s[1]-'a'+1);
    for(int i=2;i<n;i++){
        dp[i]=max(dp[i-1],dp[i-2]+s[i]-'a'+1);
    }
    cout<<dp[n-1];
}

相关推荐

  1. 2023-松散序列dp

    2024-03-17 04:12:01       20 阅读
  2. 2023-接龙数列(dp

    2024-03-17 04:12:01       22 阅读
  3. 序列

    2024-03-17 04:12:01       21 阅读
  4. 2023-岛屿个数(dfs,染色法)

    2024-03-17 04:12:01       20 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-17 04:12:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-17 04:12:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-17 04:12:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-17 04:12:01       18 阅读

热门阅读

  1. 【Docker】APISIX Ingress Controller部署

    2024-03-17 04:12:01       18 阅读
  2. 利用matlab处理netcdf文件中time变量的格式转换问题

    2024-03-17 04:12:01       21 阅读
  3. python-0009-django对数据的增删改

    2024-03-17 04:12:01       19 阅读
  4. 突破编程_C++_查找算法(插值查找)

    2024-03-17 04:12:01       25 阅读
  5. 稳定币套利案例解析一 两个疑点

    2024-03-17 04:12:01       20 阅读
  6. 【Python学习笔记】Python近期总结

    2024-03-17 04:12:01       20 阅读
  7. 24计算机考研调剂 | 哈尔滨理工大学

    2024-03-17 04:12:01       22 阅读
  8. CentOS7下使用Dockers安装MinIO

    2024-03-17 04:12:01       16 阅读
  9. 【面经&八股】搜广推方向:面试记录(八)

    2024-03-17 04:12:01       19 阅读