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

P9523 [JOISC 2022] 复制粘贴 3

没见过的区间dp

\(f_{i,j}\)\(s[i,j]\) 能压缩成的最短长度。

首先可以用操作 A 转移 \(f_{i,j}=min(f_{i,j},f_{i,j-1}+A, f_{i+1,j}+A)\)

操作 B 和 C 是一回事,转移时枚举剪切的的子串,设当前剪切板里是 \(s[i,j]\),则 \(f_{p,j}=min(f_{p,j}, f_{i,j} + k \times B + C \times k + A \times [j-p+1-k \times (j-i+1)])\),其中 \(k\)\(s[i,j]\)\(s[p,j]\) 中出现的次数。注意到多余的转移是无意义的,所以 \(s[p,p+j-i] = s[i,j]\)。暴力枚举是会T的,考虑预处理出 \(pr_{i,j}\) 表示所有满足 \(lcp_{i,p} \ge j\)\(p\) 的最大值,做一个 \(n^2\) 的 dp 即可。有转移 \(pr_{i,lcp_{i,p}}=max(pr_{i,lcp_{i,p}},p)\),要注意这里转移的只是最长公共前缀,更短的部分可以继承它的 dp 值,因为一定有 \(pr_{i,j} \ge pr_{i,j+1}\),所以要做一遍后缀 max。

#include<bits/stdc++.h>
using namespace std;
const int N=2600;
typedef long long ll; 
int n,lcp[N][N],pr[N][N];
ll f[N][N],A,B,C;
string s;
int main(){ios::sync_with_stdio(0),cin.tie(0);cin>>n>>s>>A>>B>>C;s='#'+s;for(int i=n;i>=1;i--){for(int j=i-1;j>=1;j--){if(s[i]==s[j])lcp[i][j]=lcp[i+1][j+1]+1;lcp[i][j]=min(lcp[i][j],i-j);pr[i][lcp[i][j]]=max(pr[i][lcp[i][j]],j);}for(int j=n;j>=1;j--)pr[i][j]=max(pr[i][j],pr[i][j+1]);}memset(f,0x3f,sizeof(f));for(int i=1;i<=n;i++)f[i][i]=A;for(int l=1;l<=n;l++){for(int i=1;i<=n-l+1;i++){int j=i+l-1;f[i][j]=min({f[i][j],f[i+1][j]+A,f[i][j-1]+A});for(int k=1,p=pr[i][l];p;p=pr[p][l],k++){f[p][j]=min(f[p][j],f[i][j]+B+(k+1)*C+(j-p+1-(k+1)*l)*A);	}}}cout<<f[1][n];return 0;
} 
http://www.zskr.cn/news/25030.html

相关文章:

  • P3147 [USACO16OPEN] 262144 P
  • vue2 重置 data方法 $data $options.data.call(this)
  • mysql mac m1 报错处理 - Lafite
  • 【测试分类 (下)】测试分类看这篇就够了:彻底告别概念混淆,轻松搞定工作面试 - 指南
  • 结对项目--实现一个自动生成小学四则运算题目的命令行程序
  • 如何管控文件外发安全,确保企业数据不被泄露
  • 打通CI/CD最后一公里:制品库如何成为高效流水线的核心枢纽
  • 2025年10月高端奢侈家电品牌推荐排行榜及深度对比分析
  • 2025年10月高端奢侈家电品牌推荐排行榜单对比与评测分析
  • 第五章 linux实战-CMS01
  • [nvidia docker]
  • vite插件——vite-plugin-inspect
  • ceph管理后台dashboard部署
  • 内外网文件摆渡系统有哪些?一文读懂主流方案与选型方向
  • mysql 更新默认时间
  • autohotkey 控制输入法
  • C语言实现LDPC码译码功能
  • [NOIP 2012 提高组] 开车旅行 的AC代码
  • 2025 年报警器经销商最新推荐榜单:全面剖析海湾、青鸟等品牌服务商优势,为您筛选优质可靠合作伙伴燃气 / 太阳能 / 交通道路报警器推荐
  • 解决IDEA引入依赖报错
  • 2025年10月超声波清洗机厂家推荐:十强对比评测榜
  • 完整教程:【Hive】基于物品协同过滤 [ ItemCF ] 推荐课程-余弦相似度计算
  • 2025年10月超声波清洗机厂家推荐:十强对比评测榜助您高效选型
  • CTFHub 信息泄露通关笔记9:Git泄露 Index - 指南
  • 2025年10月抗老面霜推荐:小鸟传领衔五强对比评测榜
  • 基于STM32芯片通过CAN总线控制电机运动
  • 基于Java+Springboot+Vue开发的母婴商城管理系统源码+运行步骤
  • 2025智能客服管理系统哪个好?对比国产主流5款工具中怎么选? - RAIN
  • 一文详解 | 纷享销客CRM如何助力快消巨头蒙牛实现全场景数字化转型
  • 基于进化算法的自动神经架构搜索