题意:

每次可以选择一个区间(连续相同的序列)消除,得分为 len*len;问最大得分。

分析:

很容易想到是区间DP,但是不像普通的区间DP一样切割方式~~~

如果定义 d[ i ][ j ] 区间,那么在里面切割,将有两个部分,而且中间的要连续相等,连续相等的区间可能还要枚举,加上 判断连续相等,可能会时间超,而且不是就算枚举了,剩下的还要合并,确实麻烦。

一种新的区间DP状态定义: d[i][j][k] 区间 i ~ j 后面继续加 k 个字符(与 j 相同)的最优解。

那么答案是: d[1][n][0];

状态转移:首先一种情况是 d[i][j-1][0] + (k+1)^2;

然后是切割方式:如何切割呢?

如果: i 和 r 颜色相同,这里就有可能产生一种切割方式,首先是中间部分 d[i+1][r-1][0] ,然后是合并部分,d[l][i][k+1];

新思维,巧妙解决合并的问题~~~

#include <bits/stdc++.h>using namespace std;const int maxn = 205;
int n,v[maxn];
int d[maxn][maxn][maxn];int dp(int l,int r,int k) {if(l>r) return 0;int& ans = d[l][r][k];if(ans) return ans;ans = dp(l,r-1,0) + (k+1)*(k+1);for(int i=r-1; i>=l; i--) {if(v[i]==v[r]) {ans = max(ans,dp(l,i,k+1)+dp(i+1,r-1,0));}}return ans;
}int main()
{int t;scanf("%d",&t);for(int z = 1; z<=t; z++) {scanf("%d",&n);for(int i = 1; i <= n; i++) scanf("%d",&v[i]);memset(d,0,sizeof(d));printf("Case %d: %d\n",z,dp(1,n,0));}return 0;
}

转载于:https://www.cnblogs.com/TreeDream/p/7528696.html

Uva 10559 消除方块相关推荐

  1. UVA 10559 Blocks 方块消除

    [分析] 为了叙述方便,设左数第i个方块的颜色为A[i].按照线性结构动态规划的常见思路,设d(i,j)表示子序列i-j的最大得分,但是似乎无法用d(i,k)和d(k,j)来计算d(i,j),因为可能 ...

  2. uva 10559——Blocks

    题意:有n个带颜色的方块,同种颜色的方块连成一个区域,每次可以消除一个区域的方块x,然后得到分数x2,右边的方块左移,然后问求最大的分数. 思路:区间dp,dp(i,j,k)表示区间(i,j)在右边添 ...

  3. 100道动态规划——34 UVA 10559 Blocks 状态的定义 状态转移方程

    好吧,我想到的是枚举决策... 居然是个类似于区间DP的感觉.恩..确实是呀,只不过是需要在DP的时候附加上额外的条件 定义状态dp[i][j][k]表示区间i~j且右边附加了k个与j同色的方块的最大 ...

  4. poj 1390(消除方块(blocks))

    今天中午从黑书上看到了的一道例题,动态规划-->线性模型的例1题. 看书都看不懂! 后面还是看了网上的题解,才渐渐明白...... 估计我也说不清楚,所以尽力好了. 样例: 1 2 2 2 2 ...

  5. 【方块消除】(附加工程)

    方块消除 一.引擎 二.游戏流程 图示 游戏 三.研发阶段 1.导入框架DLFramwork 2.Game游戏入口 3.GameMgr游戏管理类 4.BlockMgr主要提供可供全局访问的方块数组,是 ...

  6. CocosCreator 方块消除教程

    方块消除教程 <背景>--------------------------------------------------------------------.1 <方块>-- ...

  7. 第4-8课:方块消除游戏

    前面基础部分我们介绍过简单的串模型的动态规划,在这个系列中,我们又介绍了区间动态规划模型.状态压缩动态规划模型和线性动态规划模型.我们用的算法实现都是尽量使用状态递推关系式直接用递推的方法,大家可能都 ...

  8. H5 六边形消除游戏开发

    试玩地址,目前只适配pc端.源码 六边形游戏的鼻祖应该是这个 hex-frvr,原作者开发用的是 pixi 游戏引擎,本着快速开发的理念,本游戏采用 cocos creator,UI 延用 hex-f ...

  9. java程序里繁体字显示为方块_网页 俄罗斯方块

    游戏地址: 俄罗斯方块 | Tetris​zhangxiaoleiwk.gitee.io 看着眼熟?没错,UI 模仿了tetr.js,但代码是自己写的. 只支持电脑端,不知道键位可以点击设置查看. 游 ...

最新文章

  1. Google、Intel、Uber等巨头如何布局AI?听听他们自己人怎么说
  2. 数据持久化框架为什么放弃Hibernate、JPA、Mybatis,最终选择JDBCTemplate!
  3. angular4创建html,Angular 4 Http服务
  4. 学习Python必须要会的,在字符串,列表,元组三者之间相互转换的方法
  5. json list格式_来来来,一文让你读懂Cocos Creator如何读写JSON文件
  6. 201671030128+词频统计软件项目报告
  7. 学银在线python课程_Python 从入门到精通:一个月就够了!
  8. c语言选择题答案在哪查,C语言选择题及答案
  9. 阿里云Kubernetes CSI实践—NAS动态存储卷使用
  10. 未来五年程序员应当具备的十项技能
  11. C#winform可视化(当主窗体不能拖动时)
  12. 字符集详解(学习,看一篇就够了)
  13. 计算机硬件广告语,硬件防毒广告宣传语
  14. ThinkPHP门面源码解析
  15. 梳理chromium/chrome/谷歌浏览器对flash的支持
  16. 【vbers】ibv_get_async_event()
  17. vue3:codepen上生成的动效代码/ 前端生成统计图(echarts包)
  18. IMX6开发板支持Android|Linux + Qt|Ubuntu|Debian|Youcto系统
  19. python实现五环
  20. FZU - 2261 浪里个浪(多源最短路SPFA)

热门文章

  1. FILCO Majestouch Convertible 2 键盘连接电脑说明
  2. (五)UE4常用材质制作
  3. [转载]菜鸟的草缸 篇一:器材篇(附鱼缸、过滤器、灯、草泥开箱过程)
  4. 苹果从中国赚六百多亿美元,却在转移生产线,该减轻对它的依赖了
  5. 抖音壁纸小程序,星光壁纸小程序2.0版本,升级版
  6. 很方便的密码加密算法BCrypt
  7. 陈艾盐:《春燕》百集访谈节目第六十三集
  8. ram android手机 占用,一问易答:为何安卓机RAM使用率总是很高
  9. aria2c rpc php,Debian 如何搭建使用 aria2c 作为下载工具
  10. yapi 全局变量使用_需要接口管理的你了解一下?