codeforces 607B Zuma 区间dp
https://vjudge.net/problem/CodeForces-607B
题目大意:给出数组aaa,每次操作可以从aaa中选取一段回文串删去,问最少需要几次操作可以删去所有的元素。
思路:区间dpdpdp,dp[i][j]dp[i][j]dp[i][j]表示删去区间[i,j][i,j][i,j]最少需要的操作次数,那么有转移方程:dp[i][j]=min(dp[i[[j],dp[i][k]+dp[k+1][j]),i<=k<jdp[i][j]=min(dp[i[[j],dp[i][k]+dp[k+1][j]),i<=k<jdp[i][j]=min(dp[i[[j],dp[i][k]+dp[k+1][j]),i<=k<j。注意a[i]=a[j]a[i]=a[j]a[i]=a[j]时对dp[i][j]dp[i][j]dp[i][j]的初始化即可。
#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;int n;
int a[505];
int dp[505][505];int main()
{scanf("%d",&n);memset(dp,INF,sizeof(dp));for(int i=1;i<=n;i++)scanf("%d",&a[i]),dp[i][i]=1;for(int len=2;len<=n;len++){for(int i=1;i+len-1<=n;i++){int j=i+len-1;if(a[i]==a[j]){if(len==2)dp[i][j]=1;elsedp[i][j]=dp[i+1][j-1];}for(int k=i;k<j;k++)dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]);}}printf("%d\n",dp[1][n]);return 0;
}
codeforces 607B Zuma 区间dp相关推荐
- BZOJ 1032 JSOI 2007 祖码Zuma 区间DP
题目大意:依照祖玛的玩法(任意选颜色),给出一段区间.问最少用多少个球可以把全部颜色块都消除. 思路:把输入数据依照连续的块处理.保存成颜色和数量.然后用这个来DP.我们知道,一个单独的块须要两个同样 ...
- Codeforces 607B Zuma
题意:给你一个长度为n的字符串,每次你可以消去一段连续的回文子串,剩下的两端重新拼接成一个新的串,问最少需要消去多少次. 思路:这题一开始想不出,不好dp,一个明显的思路是用dp[i][j]表示消去i ...
- Financiers Game CodeForces - 737D (博弈论,区间dp)
大意: 给定$n$元素序列, 两个人从两端轮流拿数, 每一步假设对手上次取k, 那么只能取k或k+1, 先手第一步取1或2, 直到不能拿时停止. 先手要最大化两人数字和的差, 后手要最小化, 求最后差 ...
- Codeforces 1025D(区间dp)
容易想到设f[i][j][k]为i~j区间以k为根是否能构成bst.这样是O(n4)的.考虑将状态改为f[i][j][0/1]表示i~j区间以i-1/j+1为根能否构成bst.显然如果是i-1作为根的 ...
- 「Codeforces」598E (区间dp)
题意:原题在这 有t组输入,每次有n*m的巧克力,要吃k块 只能整行切,代价是长度的平方 求最小代价 做法:(详见行内注释) 枚举切几块和该情况下横切还是纵切 特判: 切0块.没有巧克力.切一整块 暴 ...
- CodeForces - 1312E Array Shrinking(区间dp)(通俗易懂)
CodeForces - 1312E Array Shrinking(区间dp) 题目链接: 没做出来,看了一下别人的题解,才A掉.但网上没发现一篇讲得比较易懂的题解,所以就准备写一篇再加上我自己的理 ...
- Codeforces 508E Arthur and Brackets 区间dp
Arthur and Brackets 区间dp, dp[ i ][ j ]表示第 i 个括号到第 j 个括号之间的所有括号能不能形成一个合法方案. 然后dp就完事了. #include<bit ...
- CodeForces - 1312E Array Shrinking(区间dp)
题目链接:点击查看 题目大意:给出 n 个数,现在可执行的操作是: 找到相邻且数值相等的两个数,即 abs( i - j ) == 1 && a[ i ] == a[ j ] 使得两个 ...
- Codeforces Round #655 (Div. 2) E. Omkar and Last Floor 区间dp + 巧妙的状态设计
传送门 题意: 思路: 按照贪心的思路来考虑的话,显然是每一列111的个数越多越好,所以我们能放到一列就放到一列.设f[l][r]f[l][r]f[l][r]为在[l,r][l,r][l,r]内,区间 ...
- 【CodeForces - 245H 】Queries for Number of Palindromes (带容斥的区间dp)
题干: You've got a string s = s1s2... s|s| of length |s|, consisting of lowercase English letters. The ...
最新文章
- AliOS Things lorawanapp应用介绍
- GlobalSign 荣登网络信任联盟 2013 年网络信任荣誉榜
- 【木头小开发】-iOS小小里程总结一二
- mysql秒级平滑_DDM实践:数据库秒级平滑扩容方案
- 技术动态 | 多模态知识图谱
- mysql 回滚失败_Mysql非事务表回滚失败的现象
- JPA 系列教程12-复合主键-2个@Id+@IdClass
- 电商是真的难做了吗?
- java 指纹比对 算法_Java通过sourceafis比对指纹图片的相似度判断指纹
- Cloudflare发布全球最快的DNS
- 全球首个大规模虐童图像数据库!标记15万图像、20类信息,自动判断图片是否违法​...
- 致这一段无悔的大学青春
- VSCode-工控机远程开发 之(一) VSCode无法连接扩展商店
- html5怎么查看路由器状态,怎么看路由器是否正常_怎么看路由器是否联网?-192路由网...
- 圭尔夫大学计算机科学硕士,圭尔夫大学到底有多高大上?你可能还不知道
- 学习Oracle数据库入门到精通教程资料合集
- 计算机学霸的电视剧,10部经典青春校园剧,每一部都让人怀念青春
- 7.28 结构体 Day18
- 最适合python程序员用的笔记本-适合编程的笔记本
- JAVA SpringBoot zip文件夹重命名
热门文章
- 北森{“message“:“un-authorized“}
- 一个优质软件测试工程师简历,疯狂面试5家公司......
- 电商等一些互联网项目涉及到什么技术?
- 加入洛谷OJ,开通洛谷博客
- JAVA定义矩形类 方法二
- 初学者如何从零开始搭建一个阿里云数据库
- java 临时文件目录_在Java中使用临时文件/文件夹
- 如何解决安装或者卸载时 临时文件夹已满或不能访问
- 百度地图API图标、文本、图例与连线
- 【CF724F】Uniformly Branched Trees 动态规划