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相关推荐

  1. BZOJ 1032 JSOI 2007 祖码Zuma 区间DP

    题目大意:依照祖玛的玩法(任意选颜色),给出一段区间.问最少用多少个球可以把全部颜色块都消除. 思路:把输入数据依照连续的块处理.保存成颜色和数量.然后用这个来DP.我们知道,一个单独的块须要两个同样 ...

  2. Codeforces 607B Zuma

    题意:给你一个长度为n的字符串,每次你可以消去一段连续的回文子串,剩下的两端重新拼接成一个新的串,问最少需要消去多少次. 思路:这题一开始想不出,不好dp,一个明显的思路是用dp[i][j]表示消去i ...

  3. Financiers Game CodeForces - 737D (博弈论,区间dp)

    大意: 给定$n$元素序列, 两个人从两端轮流拿数, 每一步假设对手上次取k, 那么只能取k或k+1, 先手第一步取1或2, 直到不能拿时停止. 先手要最大化两人数字和的差, 后手要最小化, 求最后差 ...

  4. 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作为根的 ...

  5. 「Codeforces」598E (区间dp)

    题意:原题在这 有t组输入,每次有n*m的巧克力,要吃k块 只能整行切,代价是长度的平方 求最小代价 做法:(详见行内注释) 枚举切几块和该情况下横切还是纵切 特判: 切0块.没有巧克力.切一整块 暴 ...

  6. CodeForces - 1312E Array Shrinking(区间dp)(通俗易懂)

    CodeForces - 1312E Array Shrinking(区间dp) 题目链接: 没做出来,看了一下别人的题解,才A掉.但网上没发现一篇讲得比较易懂的题解,所以就准备写一篇再加上我自己的理 ...

  7. Codeforces 508E Arthur and Brackets 区间dp

    Arthur and Brackets 区间dp, dp[ i ][ j ]表示第 i 个括号到第 j 个括号之间的所有括号能不能形成一个合法方案. 然后dp就完事了. #include<bit ...

  8. CodeForces - 1312E Array Shrinking(区间dp)

    题目链接:点击查看 题目大意:给出 n 个数,现在可执行的操作是: 找到相邻且数值相等的两个数,即 abs( i - j ) == 1 && a[ i ] == a[ j ] 使得两个 ...

  9. 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]内,区间 ...

  10. 【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 ...

最新文章

  1. AliOS Things lorawanapp应用介绍
  2. GlobalSign 荣登网络信任联盟 2013 年网络信任荣誉榜
  3. 【木头小开发】-iOS小小里程总结一二
  4. mysql秒级平滑_DDM实践:数据库秒级平滑扩容方案
  5. 技术动态 | 多模态知识图谱
  6. mysql 回滚失败_Mysql非事务表回滚失败的现象
  7. JPA 系列教程12-复合主键-2个@Id+@IdClass
  8. 电商是真的难做了吗?
  9. java 指纹比对 算法_Java通过sourceafis比对指纹图片的相似度判断指纹
  10. Cloudflare发布全球最快的DNS
  11. 全球首个大规模虐童图像数据库!标记15万图像、20类信息,自动判断图片是否违法​...
  12. 致这一段无悔的大学青春
  13. VSCode-工控机远程开发 之(一) VSCode无法连接扩展商店
  14. html5怎么查看路由器状态,怎么看路由器是否正常_怎么看路由器是否联网?-192路由网...
  15. 圭尔夫大学计算机科学硕士,圭尔夫大学到底有多高大上?你可能还不知道
  16. 学习Oracle数据库入门到精通教程资料合集
  17. 计算机学霸的电视剧,10部经典青春校园剧,每一部都让人怀念青春
  18. 7.28 结构体 Day18
  19. 最适合python程序员用的笔记本-适合编程的笔记本
  20. JAVA SpringBoot zip文件夹重命名

热门文章

  1. 北森{“message“:“un-authorized“}
  2. 一个优质软件测试工程师简历,疯狂面试5家公司......
  3. 电商等一些互联网项目涉及到什么技术?
  4. 加入洛谷OJ,开通洛谷博客
  5. JAVA定义矩形类 方法二
  6. 初学者如何从零开始搭建一个阿里云数据库
  7. java 临时文件目录_在Java中使用临时文件/文件夹
  8. 如何解决安装或者卸载时 临时文件夹已满或不能访问
  9. 百度地图API图标、文本、图例与连线
  10. 【CF724F】Uniformly Branched Trees 动态规划