当前位置: 首页 > article >正文

蓝桥杯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];
}


http://www.kler.cn/a/271494.html

相关文章:

  • 【PLL】杂散生成和调制
  • 数据库性能优化(sql优化)_SQL执行计划03_yxy
  • MySQL注入中load_file()函数的使用
  • thinkphp6+swoole使用rabbitMq队列
  • 【自学嵌入式(7)天气时钟:WiFi模块、OLED模块、NTP模块开发】
  • 面向对象设计:SOLID 原则
  • 十五、自回归(AutoRegressive)和自编码(AutoEncoding)语言模型
  • 开源绘图工具 PlantUML 入门教程(常用于画类图、用例图、时序图等)
  • 数据清洗与预处理:打造高质量数据分析基础
  • LeetCode 395. 至少有K个重复字符的最长子串
  • RoketMQ主从搭建
  • c语言:于龙加
  • 《工厂模式(极简c++)》
  • 【 代码随想录算法训练营第二十四天 | LeetCode77. 组合 】
  • 网络编程套接字——实现简单的UDP网络程序
  • 【网络原理】TCP 协议中比较重要的一些特性(三)
  • 【LeetCode热题100】146. LRU 缓存(链表)
  • HarmonyOS(二十)——管理应用拥有的状态之LocalStorage(页面级UI状态存储)
  • Ubuntu 虚拟机安装
  • MySQL 数据库设计范式
  • openstack调整虚拟机CPU 内存 磁盘 --来自gpt
  • AI - 支持向量机算法
  • C语言——母牛的故事
  • 数据结构 之 二叉树
  • 瑞熙贝通打造智慧校园实验室安全综合管理平台
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:UIExtensionComponent (系统接口))