回文串dp|预处理cost

回文串枚举模板

for (int len = 2; len <= n; ++len)
for (int left = 0; left + len <= n; ++left)
int right = left + len - 1;

二维填表min cost时我们会发现需要cost i j,然后就会想到提前预处理计算

(解耦拆分为预处理一次

dp[i][j] = min(dp[i][j], dp[m][j - 1] + cost[m][i - 1]);

lc1278

预处理出任意子串改为回文的最少修改成本

二维dp计算前 i 个字符分割为 j 段回文的最小总成本

最终返回前 n 个字符分割为 k 段的结果

class Solution {
public:
int palindromePartition(string s, int k) {
int n = s.length();
// 替换:计算[left,right]子串改为回文的最少修改数(替代原isPalindrome)
vector<vector<int>> cost(n, vector<int>(n, 0));
for (int len = 2; len <= n; ++len)
for (int left = 0; left + len <= n; ++left) {
int right = left + len - 1;

if (s[left] == s[right]) cost[left][right] = cost[left + 1][right - 1];
elsecost[left][right] = cost[left + 1][right - 1] + 1;
}

// 二维dp[i][j]表示前i个字符分割为j段的最少修改数
vector<vector<int>> dp(n + 1, vector<int>(k + 1, n));
dp[0][0] = 0; // init:前0个字符分割为0段,修改数为0


for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= min(i, k); ++j) {

if (j == 1) dp[i][1] = cost[0][i - 1];

// 分割为1段的情况
else {
for (int m = j - 1; m < i; ++m) {

// 枚举前m个字符分割为j-1段
dp[i][j] = min(dp[i][j], dp[m][j - 1] + cost[m][i - 1]);
}
}
}
}
return dp[n][k];
}
};

1. 回文判断为成本计算:二维数组 cost ,存储 [left,right] 子串改为回文的最少修改字符数。

2. DP二维: dp[i][j] (前 i 个字符分割为 j 段的最少修改数),适配 k 段分割要求

3. 重构DP转移逻辑:按 j 段数遍历,枚举分割点计算 j-1 段加当前段的总成本,取最小值

lcr94

1.二维回文表 预处理填写

for (int len = 2; len <= n; ++len)
for (int left = 0; left + len <= n; ++left)

2.典 转移设计

// dp[i] 代表[0, i] 这段最少分隔回文次数

// 求最小,初始化最大为字符串长度,一一切割
vector<int> dp(n, n);
for (int i = 0; i < n; ++i) {
if(isPalindrome[0][i]) dp[i] = 0;
else {
for (int j = 0; j < i; ++j) { // i转移为了j
if (isPalindrome[j + 1][i])
dp[i] = min(dp[i],dp[j] + 1);
}

class Solution {
public:
int minCut(string s)

{
int n = s.length();
vector<vector<bool>> isPalindrome(n, vector<bool>(n));
for (int i = 0; i < n; ++i)

isPalindrome[i][i] = true;


for (int len = 2; len <= n; ++len)
for (int left = 0; left + len <= n; ++left) {
int right = left + len - 1;
if (len == 2)

isPalindrome[left][right] = s[left] == s[right];
if (len > 2) isPalindrome[left][right] = s[left] == s[right] &&isPalindrome[left + 1][right - 1]; //转移
}


// dp[i] 代表[0, i] 这段最少分隔回文次数
// 求最小,初始化最大为字符串长度,一一切割
vector<int> dp(n, n);
for (int i = 0; i < n; ++i) {
if(isPalindrome[0][i]) dp[i] = 0;
else {
for (int j = 0; j < i; ++j) { // i转移为了j
if (isPalindrome[j + 1][i])
dp[i] = min(dp[i], dp[j] + 1);
}
}
}
return dp[n - 1];
}
};

lc1328

class Solution {
public:
string breakPalindrome(string palindrome)
{
int n=palindrome.size();
if(n==1) return "";
int f=n%2;
for(int i=0;i<n;i++)
{
if(f && i==n/2)
continue;

if(palindrome[i]!='a')
{
palindrome[i]='a';
return palindrome;
}
}
palindrome[n-1]='b';
return palindrome;
}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1165402.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2026亲测:7款免费降AI神器实测!论文AI率从99%狂降到5%!

眼看论文就要交了&#xff0c;AI检测居然显示99%&#xff1f;&#xff01; 当时我真的眼前一黑。辛辛苦苦码了几万字&#xff0c;结果被检测出AI率这么高&#xff1f;&#xff0c;这谁受得了啊。 别慌&#xff0c;我也经历过这种绝望时刻&#xff01;前后花钱试了十几款工具&…

导师严选2026 AI论文软件TOP10:专科生毕业论文写作全测评

导师严选2026 AI论文软件TOP10&#xff1a;专科生毕业论文写作全测评 2026年专科生论文写作工具测评&#xff1a;为何需要一份专业榜单&#xff1f; 随着AI技术在学术领域的广泛应用&#xff0c;越来越多的专科生开始借助智能写作工具提升论文效率。然而&#xff0c;市面上的AI…

【计算机毕业设计案例】基于python-pytorch人工智能训练识别舌头是否健康

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

抓住核心要点!提示工程架构师谈自动驾驶提示工程要点

自动驾驶提示工程核心要点:从感知到决策的Prompt设计方法论 摘要/引言:为什么自动驾驶需要「会懂场景的Prompt」? 清晨7点的北京二环,一辆自动驾驶测试车正匀速行驶。突然,右侧公交车站旁的绿化带里窜出一只猫——传统感知模型立刻输出「小型动物,距离8米」,但决策系统…

MQTT傻瓜化调用组件,零成本学习.NET开发,上位机开发

你希望用 MQTTnet 在 VB.NET 中实现极简、低门槛的调用方式&#xff08;像 WebSocket 那样&#xff0c;连接、接收、错误各一个简单过程&#xff0c;小学生都能看懂&#xff09;&#xff0c;同时保留精细控制的能力。我完全理解这个需求 —— 新手不需要纠结复杂的配置&#xf…

【例4-9】城市公交网建设问题(信息学奥赛一本通- P1348)

【题目描述】有一张城市地图&#xff0c;图中的顶点为城市&#xff0c;无向边代表两个城市间的连通关系&#xff0c;边上的权为在这两个城市之间修建高速公路的造价&#xff0c;研究后发现&#xff0c;这个地图有一个特点&#xff0c;即任一对城市都是连通的。现在的问题是&…

基于SpringBoot网络安全教育网的设计与实现

博主主页&#xff1a;一点素材 博主简介&#xff1a;专注Java技术领域和毕业设计项目实战、Java微信小程序、安卓等技术开发&#xff0c;远程调试部署、代码讲解、文档指导、ppt制作等技术指导。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬…

计算机深度学习毕设实战-深度学习通过python-pytorch训练识别是否是积水区域

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

【计算机毕业设计案例】基于机器学习python-CNN深度学习的常见中草药识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

什么是SQL注入

文章目录SQL注入原理SQL注入类型华为WAF5000-Web应用防火墙SQL注入是一种代码注入技术&#xff0c;也是最危险的Web应用程序漏洞之一。攻击者在用户输入字段中插入恶意代码&#xff0c;欺骗数据库执行SQL命令&#xff0c;从而窃取、篡改或破坏各类敏感数据。业界常用Web应用防火…

【计算机毕业设计案例】基于python卷神经网络深度学习的水稻是否伏倒识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

深度学习毕设选题推荐:基于python的深度学习人工智能的常见中草药识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

还在为高AI率烦恼?6款亲测有效的降AI工具推荐,手把手教你ai率轻松降到10%以下

你的论文是不是AI率超高&#xff1f;一查降ai率结果80%以上&#xff1f; 别急&#xff0c;这种情况很多人遇到过。 用AI工具写论文确实快&#xff0c;但“AI味”太浓就容易翻车。 今天我就来分享几款自己用过、真心能打的ai降ai工具&#xff0c;从免费降ai率工具到专业级都涵…

【计算机毕业设计案例】卷神经网络通过python-pytorch训练识别是否是积水区域

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

计算机深度学习毕设实战-基于python-CNN机器学习的水稻是否伏倒识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

【毕业设计】通过python-pytorch深度学习训练识别是否是积水区域

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

【课程设计/毕业设计】基于python-CNN机器学习深度学习的水稻是否伏倒识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

深度学习毕设选题推荐:基于python-CNN深度学习卷神经网络的水稻是否伏倒识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

深度学习毕设选题推荐:机器学习通过python-pytorch训练识别是否是积水区域

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

【课程设计/毕业设计】通过python-pytorch机器学习训练识别是否是积水区域

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…