CF607B Zuma 题解
CF607B Zuma
不知道为什么你谷会评蓝,这不是很基础的区间DP吗。
题意简述
消除回文子串的最小次数。
思路
对于区间\([i,j]\),如果它是回文的,那么消除它所需的次数是\(1\)。
如果它不是回文的,但是\(a[i]==a[j]\),那么当区间\([i+1,j-1]\)被消除到只剩下一个回文串时,它就变成了回文串。因此消除它所需次数可以为\(dp[i+1][j-1]\),也可以把它分成若干段分开消除。取其中最小值。
如果它不是回文的,且\(a[i]!=a[j]\),那么想消除它只能分开消除。
综上所述,我们得到了一个状态转移方程:
\]
\]
这样我们容易得到它的边界条件:
\]
当然,可以在\(i>j\)时设\(dp[i][j]=1\)。
实现
初始将\(dp\)数组设为\(\inf\)。
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
dp[i][j]=1;
for(int l=2;l<=n;l++)
for(int i=1;i+l-1<=n;i++)
{
int j=i+l-1;
if(a[i]==a[j])
dp[i][j]=dp[i+1][j-1];
for(int k=i;k<j;k++)
dp[i][j]=min(f[i][j],f[i][k]+f[k+1][j]);
}
printf("%d",f[1][n]);
\]
CF607B Zuma 题解的更多相关文章
- CF607B Zuma(区间dp)
题意 题目链接 Sol 裸的区间dp,转移的时候判一下两个字符是否相等即可 #include<bits/stdc++.h> #define Pair pair<int, int> ...
- [LeetCode] Zuma Game 题解
题目 题目 Think about Zuma Game. You have a row of balls on the table, colored red(R), yellow(Y), blue(B ...
- 【CF607B】Zuma——区间dp(记忆化搜索/递推)
以下是从中文翻译成人话的题面: 给定一个长度小于等于500的序列,每个数字代表一个颜色,每次可以消掉一个回文串,问最多消几次可以消完? (7.16) 这个题从洛谷pend回来以后显示有103个测试点( ...
- bzoj1032 [JSOI2007]祖码Zuma
1032: [JSOI2007]祖码Zuma Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 672 Solved: 335[Submit][Stat ...
- Codeforces Round #336 (Div. 2) D. Zuma 区间dp
D. Zuma Genos recently installed the game Zuma on his phone. In Zuma there exists a line of n gems ...
- Codeforces Round #336 (Div. 2) D. Zuma 记忆化搜索
D. Zuma 题目连接: http://www.codeforces.com/contest/608/problem/D Description Genos recently installed t ...
- Codeforces Round #336 (Div. 2) D. Zuma
Codeforces Round #336 (Div. 2) D. Zuma 题意:输入一个字符串:每次消去一个回文串,问最少消去的次数为多少? 思路:一般对于可以从中间操作的,一般看成是从头开始(因 ...
- BZOJ 1032 [JSOI2007]祖码Zuma
1032: [JSOI2007]祖码Zuma Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 637 Solved: 318[Submit][Stat ...
- LeetCode All in One题解汇总(持续更新中...)
突然很想刷刷题,LeetCode是一个不错的选择,忽略了输入输出,更好的突出了算法,省去了不少时间. dalao们发现了任何错误,或是代码无法通过,或是有更好的解法,或是有任何疑问和建议的话,可以在对 ...
- 【44.19%】【codeforces 608D】Zuma
time limit per test2 seconds memory limit per test512 megabytes inputstandard input outputstandard o ...
随机推荐
- Vscode之常用插件
code runner 可以直接在编辑器中运行代码,查看结果,非常方便,一键运行. PHP Intelephense PHP代码提示工具,支付代码提示.查找定义.类搜索等功能,非常强大. php de ...
- winform窗体无边框拖动
1:引用命名空间 using System.Runtime.InteropServices; 2:想要拖动窗体的控件绑定MouseDown事件 点击查看代码 //窗体移动 [DllImport(&qu ...
- DDPM论文解读
DDPM(Denoising Diffusion Probabilistic Models) 论文研究背景 扩散概率模型(Denoising Diffusion Probabilistic Model ...
- Mplus数据分析:性别差异gendergap的相关研究如何做?
再出一篇用mplus做的多组比较和中介分析的文章,专门谈谈诸如性别差异的各种研究的分析方法,从本文中大家不止可以知道性别差异,各种差异,各种gap只要你感兴趣都可以套进来这个方法来进行你的研究设计. ...
- macOS 终端可用的 Hex 查看与编辑器
在 Windows 下我们可以使用 WinHex,而在 macOS 平台上,有什么不错的十六进制查看器.编辑器呢? 准备首先,我们创建一个文件用于测试. echo 'welcome' > fil ...
- Qt开发经验小技巧231-235
关于c++中继承多态virtual和override的几点总结. 子类可以直接使用基类中的protected下的变量和函数. 基类函数没加virtual,子类有相同函数,实现的是覆盖.用基类指针调用时 ...
- Qt编写的项目作品15-皮肤生成器+UIDemo
一.功能特点 自带17套精美皮肤样式,其中包括黑色.灰色.扁平等. 皮肤生成器只需要简单几步就可以生成一套自定义的皮肤. 自带了26种uidemo,非常漂亮美观,涵盖了主界面布局.菜单切换等各种效果, ...
- Idea中@Autowired 黄色波浪线问题以及注入类显示红色波浪线问题解决
解决办法: 点开路径:File--->Settings--->Editor--->Inspections--->Spring--->Spring core--->C ...
- UdpClient.BeginReceive(AsyncCallback, Object) 方法
命名空间: System.Net.Sockets 程序集: System.Net.Sockets.dll 从远程主机异步接收数据报. public IAsyncResult BeginReceive ...
- Linux 检查磁盘空间命令合集
1. DF df 是检查Linux安装程序上可用分区空间的最常用的命令之一.可以使用"df -TH"以直观易读的格式打印分区类型和分区大小.此命令将显示每个部分的总可用空间.已用空 ...