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

cf1600-1900每天刷2-3道打卡(2)

上一个帖子太长了,编辑起来有点卡干脆重开了一个

Day20------2025.6.03

Problem - E - Codeforces

E. Vasya and Binary String(区间dp)

思路

这其实是一道2400的题,因为最近温习了一下区间dp学习到了这个带有前缀思维的区间dp的状态转移于是就做了这么一个题,话说这个前缀的思维确实很难想到,总之量变引起质变下次遇到的时候就会了

我们设dp[l][r][k]表示区间 l...r 的范围内有k个前缀和s[l]相同的字符与s[l]相连,

那么我们在状态转移的时候分为两种情况:

1.将s[l]连同这k个前缀全部消掉dp[l][r][k]=a[k+1]+dp[l+1][r][0]

2.将连同s[l]的k+1个前缀向后转移,不断枚举断点即可

dp[l][r]=max\begin{Bmatrix} dp[l+1][i]+dp[i+1][r][k+1] \end{Bmatrix}    i\in [l,r],s[i]==s[l]

代码

#include<bits/stdc++.h>
using namespace std;#define vcoistnt ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); 
#define int long long
#define vi vector<int>
#define vb vector<bool>
typedef pair<int,int> pll;const int N=2e5+10;
const int inf=1e18;
const int mod=998244353;//s[l...r]其中有k个和s[l]相等的字符与s[l]相连的最优解
int dfs(int l,int r,int k,string s,vi a,vector<vector<vector<int>>>& dp){if(l==r){return a[k+1];}if(l>r){return 0;}if(dp[l][r][k]!=-1) return dp[l][r][k];int ans=0;//将前缀全部清除ans=max(ans,a[k+1]+dfs(l+1,r,0,s,a,dp));//将前缀向后转移for(int i=l+1;i<=r;i++){if(s[i]==s[l]){ans=max(ans,dfs(l+1,i-1,0,s,a,dp)+dfs(i,r,k+1,s,a,dp));}}return dp[l][r][k]=ans;
}void solve(){int n;string s;cin>>n>>s;s=" "+s;vector<int> a(n+10);for(int i=1;i<=n;i++) cin>>a[i];vector<vector<vector<int>>> dp(n+1,vector<vector<int>>(n+1,vector<int>(n+1,-1)));cout<<dfs(1,n,0,s,a,dp)<<"\n";
}
signed main() {vcoistntcout<<fixed<<setprecision(2);int _=1;// cin>>_;while(_--) solve();return 0;
}

相关文章:

  • 黑盒(功能)测试基本方法
  • LARWINER拉威兒艺术珠宝携手郭培GUOPEI高定服装 共谱「宝光凝粹,锦绣华裳」
  • OpenCV CUDA模块图像处理------图像融合函数blendLinear()
  • ChatGPT实战嵌入式开发应用指南与代码演示
  • 2025中国主流大模型全景解析:技术路线、场景实践与生态博弈
  • docker中启动 Python 程序并调用某个模块内的函数的方法
  • centos安装locate(快速查找linux文件)
  • SMART原则讲解
  • docker-compose 方式搭建 Jpom
  • 关于线缆行业设备数据采集异构问题的解决
  • 深度思考:摆脱无效忙碌的核心策略
  • 【Typst】2.Typst标记语法和基础样式
  • 7.5- Loading a pretrained LLM
  • Linux 测试本机与192.168.1.130 主机161/udp端口连通性
  • 数组的常用方法有哪些?
  • vSOME/IP与ETAS DSOME/IP通信的问题解决方案
  • 各个主要目录的功能 / Linux 常见指令
  • python实现基于声音识别的腕带式打鼾干预装置设计与实现
  • 【25.06】FISCOBCOS安装caliper+报错解决
  • 二分查找和二分答案(基础)
  • 搜索引擎的网站推广方式/推广接单平台
  • 西安做网站选哪家/杭州百度优化
  • 网站开发商城实例/北京关键词优化报价
  • 南京高端网站建设/网络推广具体内容
  • 女网友叫我一起做优惠券网站/海外网络推广服务
  • 网页链接成整体通过网站/免费b站推广短视频