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

题解:P15206 [SWERC 2018] Dishonest Driver

分析

读完题后一眼区间DP

压缩规则分为三类:原子路径(单个字符)、两个压缩路径的连接、单个压缩路径的重复。我们需要找到每个子区间的最优压缩方式,最终得到整个字符串的最短压缩大小。

\(dp[i][j]\) 表示字符串从下标 \(i\)\(j\)(闭区间)的最短压缩大小,单个字符的压缩大小为 1,即 \(dp[i][i] = 1\)

然后就可以有两种转移:

  • 分割转移:将区间 \([i,j]\) 拆分为 \([i,k]\)\([k+1,j](i≤k<j)\),则 \(dp[i][j] = min(dp[i][j], dp[i][k] + dp[k+1][j])\)
  • 重复转移:若 \([i,j]\) 可由长度为 \(L\) 的子串重复 \(m\) 次构成 \((j-i+1) % L == 0\),则 \(dp[i][j] = min(dp[i][j], dp[i][i+L-1])\)

然后整个字符串的最短压缩大小就为 \(dp[0][n-1]\)(字符串下标从 0 开始)。

Code:

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(){int n;string s;cin >> n >> s;int dp[700][700];for (int i = 0; i < n; i++){dp[i][i] = 1;}for (int l = 2; l <= n; l++){for (int i = 0; i + l <= n; i++){int j = i + l - 1;dp[i][j] = 1e9;for (int k = i; k < j; k++){dp[i][j] = min(dp[i][j], dp[i][k] + dp[k + 1][j]);}for (int L = 1; L < l; L++){if (l % L){continue;}bool ok = 1;for (int t = 0; t < l; t++){if (s[i + t] != s[i + t % L]){ok = 0;break;}}if (ok) dp[i][j] = min(dp[i][j], dp[i][i + L - 1]);}}}cout << dp[0][n - 1] << endl;return 0;
}
http://www.jsqmd.com/news/375202/

相关文章:

  • 题解:AT_pakencamp_2024_day1_c One Half
  • Burp Suite 入门文档(官方翻译)
  • PyTorch项目合集一
  • springboot民宿管理系统--附源码32900 - 详解
  • 免费城市夜景视频素材网站推荐
  • TikTok Shop东南亚2026退货新规来袭!海外仓这样布局抢占先机
  • 完整教程:MySQL数据可视化实战:从查询到图表全攻略
  • 面向大模型开发:在项目中使用 TOON 的实践与流式处理深度解析:原理、实战与踩坑记录
  • 3:【GitHub连接】Connection timed out port 22 → 改用443端口SSH(公司/校园网2026常见)
  • 探索 LDO 电路:模拟集成电路设计的实践之旅
  • 2:【新手最坑】git push HTTPS vs SSH反复失败怎么彻底统一
  • 4:【Git clone】fatal: unable to access / timeout / proxy设置
  • 如何在大数据领域运用 OLAP 提升业务洞察
  • 写论文是看完一堆文献后再写,还是边看边写
  • P10720 [GESP202406 五级] 小杨的幸运数字 欧拉筛
  • 5:【Git】remote origin already exists 如何安全修改URL
  • 1:【GitHub 2026】Permission denied (publickey) / 403 一键解决(SSH ed25519 + ssh-agent)
  • [幻灯]《软件方法》引导AI03-业务流程建模和改进
  • GLUT
  • 2024智能能源管理新趋势:上下文工程将成为提示工程架构师的核心能力
  • [幻灯片]《软件方法》引导AI全流程开发幻灯片02-愿景
  • 智能营销AI平台建设:如何设计弹性可扩展架构?
  • 国自然申请书卡壳了怎么办?
  • 【Docker基础篇】WSL2+Docker Desktop完整配置指南:Windows也能拥有原生Linux开发体验
  • 2月12号
  • Windows Hyper-V 安装 Ubuntu 系统完整教程(避坑版)
  • When Tables Go Crazy Evaluating Multimodal Models on French Financial Documents
  • python学习笔记4运算符与表达式
  • 深入解析:SRS流媒体服务器二次开发-实现媒体流采集服务
  • 2026主管护师3个月极限上岸:这份详细备考拆解方案,现在看完全来得及! - 医考机构品牌测评专家