POJ 1390 方块消除

[POJ1390]Blocks(方块消除) Description Some of you may have played a game called ‘Blocks’. There are n blocks in a row, each box has a color. Here is an example: Gold, Silver, Silver, Silver, Silver, Bronze, Bronze, Bronze, Go 阅读详情

下次亲自来A了

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;

const int maxn=205;
int color[maxn],len[maxn],after[maxn];
int dp[maxn][maxn][maxn];

int main()
{
	int m,n,T,caseid=0;
	int i,j,l,r,k,p,id;
	int seq[maxn],cnt;
	bool vis[maxn];
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d",&n);
		scanf("%d",&seq[1]);
		id=cnt=1;
		for(i=2;i<=n;i++)
		{
			scanf("%d",&seq[i]);
			if(seq[i]==seq[i-1])
			{
				cnt++;
			}
			else
			{
				color[id]=seq[i-1];
				len[id++]=cnt;
				cnt=1;
			}
		}
		color[id]=seq[n];
		len[id++]=cnt;

		memset(vis,0,sizeof(vis));
		for(i=id-1;i>=1;i--)
		{
			if(vis[i])
			{
				continue;
			}
			after[i]=0;
			int tmp=i;
			for(j=i-2;j>=1;j--)
			{
				if(color[j]==color[tmp])
				{
					after[j]=after[tmp]+len[tmp];
					tmp=j;
					vis[j--]=true;
				}
			}
		}

		memset(dp,0,sizeof(dp));
		for(j=1;j<id;j++)
		{
			for(l=1;l+j-1<id;l++)
			{
				r=l+j-1;
				for(k=0;k<=after[r];k++)
				{
					dp[l][r][k]=dp[l][r-1][0]+(len[r]+k)*(len[r]+k);
					for(p=r-2;p>=l;p--)
					{
						if(color[p]==color[r])
						{
							dp[l][r][k]=max(dp[l][r][k],dp[l][p][k+len[r]] +
								dp[p+1][r-1][0]);
						}
					}
				}
			}
		}
		
		printf("Case %d: %d\n",++caseid,dp[1][id-1][0]);
	}
	return 0;
}



poj(1390)——Blocks 题意: 就是给你总共n个方块,然后让你每次消去一些方块,然后获得的得分是消去方块数的平方。问最后游戏结束的时候得分最大是多少? 思路: 这道题是一道记忆性动归程序,主要是那个dp的状态转移方程有点难想。。。 首先,我们记click_box(i,j,ex_len):表示的是在第j个大块之后有ex_len长度的大块(大块就是相同颜色进行合并之后的块)且j的颜色和ex_len的颜色相同时,在这种 阅读详情

相关推荐

简单的图书管理系统---SpringBoot+mysql通过前后端分离实现增删查改

SpringBoot+mysql通过前后端分离实现增删查改 上篇文章介绍了如何写后端接口 SpringBoot连接MySQL获取数据写后端接口 这篇文章,我们就介绍一下怎么写前端 点击修改跳出修改界面,点击添加书籍跳出添加书籍界面 点击删除,直接删除一行数据 其他的也没什么解释了,直接上代码(看不懂的可以私聊我哟) <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>

爱笑的博客 2015

方块消除

题解: 很明显,区间DP。 若单纯二维,无法实现复杂的区间合并。所以我们考虑三维。 f[i][j][k]f[i][j][k]f[i][j][k]表示[i,j][i,j][i,j]区间连带jjj右边kkk个相同一起消掉的MaxMaxMax。 在区间合并更新最大值时强制让一段区间单独消完,比如右子区间。 但这时不知道最优决策,所以采用动态规划便利所有状态的特性,挨个尝试。 #include<io...

Mystletainn的博客 986

YOLOv8验证的命令以及计算coco指标

好久不看代码,都不知道怎么验证的了,来记录一下。1、计算coco指标。

毕竟是Shy哥 1481

poj 1390 Blocks 方块消除

把方块按颜色分段,color[i]表示这段方块的颜色,len[i]表示这段方块的长度 dp[i][j][k]表示从i段到j段,第j段之后有k个方块与第j段颜色相同 对第j段,有两种处理方法 直接消除或者与前面的某一段一起消除 dp[i][j][k] = max(dp[i]

deng_yu的专栏 538

Quartus II设计程序计数器PC、由PC产生ROM的地址(含仿真)

设计程序计数器PC,正常工作模式下,系统启动,设置PC的初始值,之后每来一个clk,PC的输出值应该增加1;当程序发生跳转时,PC的值应该发生改变,级将跳转的地址值赋进行输出。PC后端连接一个ROM,由PC来产生ROM的地址,仿真进行验证。

m0_73700621的博客 1817

基于phpstudy搭建pikachu靶场

一、phpstudy下载安装配置 phpstudy介绍 简单介绍一下phpstudy,详细请参考百度解读。pikachu是基于PHP环境搭建的,需要数据库支持,所以装pikachu之前需要先安装它需要的环境,就像你养鱼需要给它提供水环境一样。安装phpstudy能满足pikachu的需求,所以先安装phpstudy。 phpStudy是一个PHP调试环境的程序集成包。该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是

ptxybird的博客 1万+

poj1390 方块消除 dp

参考:徐源盛《对一类动态规划问题的研究》以及刘汝佳的黑书《算法艺术与信息学竞赛》 将方块序列,按颜色分成一段一段的,例如 1 1 1 1 1 3 2 2 1 1 1 可记为color[ 1 ] = 1; len[1 ] = 5; color[ 2 ] = 3; len[ 2 ]

2659

从SSTS到CTS:解码汽车电子架构中的需求与实现规范

本文深入解析汽车电子架构中SSTS(子系统功能规范)与CTS(零部件技术规范)的转换过程,揭示从抽象需求到物理实现的关键步骤。通过实际案例说明如何将SSTS的功能逻辑、接口定义和性能指标转化为具体的CTS实施方案,并分享多供应商协同与测试验证的最佳实践,帮助开发者高效完成汽车电子系统开发。

weixin_29201859的博客 500

【POJ】1390 blocks 方块消除

【POJ】1390 blocks 方块消除 原题 Time Limit: 5000MS Memory Limit: 65536K Description Some of you may have played a game called ‘Blocks’. There are n blocks in a row, each box has a color. Here is an example: Gold, Silver, Silver, Silver, Silver, Bronze, Bronze,

weixin_46975572的博客 406

Vue3 - 最新详细实现网站内部打开预览 office 全套附件,在页面弹窗内解析预览 word文档、excel电子表格、ppt演示文稿(docx|xlsx|pptx|pdf|txt等文件)完美兼容

vue3,nuxt3,下载预览,如何预览pdf文档,打开查看,office全套文档,实现在线预览文件,小程序内预览word文件,手机h5移动端网页,nuxt文档在线预览,预览office最好用的插件,office,文档,文件,查看预览,弹框预览,文档无法解析,打不开,报错,失效,保存下载,vue前端预览并下载doc、xls、pdf、txt及图片,下载查看,Office在线预览,vue-office,vue如何使用vue-office教程示例,word文档,ppt,exce表格,预览电子文件,vue在线预览

🏆 前端领域优质创作者 1万+

31、车载通信中的可见光通信(VLC)技术解析

本文详细解析了车载通信中可见光通信(VLC)技术的应用背景、优势及发展前景。对比传统RF通信技术(如DSRC),VLC利用LED照明设备实现高效、安全的车辆与车辆、车辆与基础设施之间的通信,具有频谱资源丰富、安全性高、无电磁干扰等优势。文章还探讨了VLC在交叉口交通控制、高速公路通信、自动驾驶等场景的应用潜力,展望了其在未来智能交通系统中的重要作用。

hill8的博客 319

poj 1390 Blocks(dp,黑书dp方块消除)

poj 1390 Blocks

yjCola 978

199、影像技术 roadmap 规划:未来移动影像的技术趋势与芯片算力展望

本文探讨了未来移动影像技术的发展趋势与芯片算力规划。作者从实际案例出发,指出影像技术演进需平衡传感器、ISP、算力和功耗。文章分为三部分:1)传感器将从堆像素转向提升信息密度,重点关注双层晶体管结构、混合快门和多光谱技术;2)ISP架构将向可编程计算单元转型,强调神经网络加速、硬件化多帧融合和语义处理;3)芯片算力瓶颈在于数据搬运,需优化存算一体架构、专用DMA和统一内存。最后给出五点建议:避免盲目追高像素、重视持续功耗、平衡ISP灵活性、预留算力余量、加强传感器与ISP协同设计。作者强调,影像技术的突破在

sundong_81的博客 60

[poj1390]Blocks(方块消除)

题目大意:给定一序列,可点击某一位置消除与其相邻且相同的方块,得分为$len*len$,求最大得分。 解题关键:关键是状态的构造,首先离散化一下,令$dp[i][j][k]$表示序列$i-j$且后面有$k$个与该序列最后位置相同的元素, 则$dp[i][j][k]$可以由两种情况转化而来, 1、最后一部分自己消除 $dp[i][j][k]=dp[i][j-1][0]+(k+len[j])*(...

weixin_30349597的博客 227

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

poj 1390 Blocks (经典区间dp 方块消除)

Blocks Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 4250   Accepted: 1704 Description Some of you may have played a game called 'Blocks'. There are n bloc

To be what you what to be! 2752

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

poj 1390(消除方块(blocks))

今天中午从黑书上看到了的一道例题,动态规划——>线性模型的例1题。 看书都看不懂! 后面还是看了网上的题解,才渐渐明白...... 估计我也说不清楚,所以尽力好了。 样例: 1 2 2 2 2 3 3 3 1 我们建立两个数组 :color, num. 其中,color储存的是颜色值,Num是相同颜色的个数。 例如,对上面的样例来说,我们就有:color[1..4]:=(1,...

weixin_30780221的博客 211

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

poj-1390-Blocks(方块消除)-DP

<br />这个题是算法艺术那本书里面的一个例题。虽然看了那里的分析知道了状态方程,但是那里有时间复杂度是O(N^4).这样肯定是要优化的。我也是根据书里的提示来优化的,弄了差不多6个多小时才搞定,而且时间效率也很低,自己的算法能力真的是有待提高。<br /> <br />未经优化的代码:<br />/* ID: mnlm1991 PROG: poj 1390 LANG: C++ */ #include<cstdio> #include<cstdlib> #include<cmath>

mnlm1991的专栏 1424

POJ1390&&UVA10559&&ybtoj【动态规划】2章3题及P2135(弱化版)【方块消除Blocks】

方块消除Blocks 题目 Jimmy最近迷上了一款叫做方块消除的游戏。游戏规则如下:n个带颜色方格排成一列,相同颜色的方块连成一个区域(如果两个相邻方块颜色相同,则这两个方块属于同一区域)。为简化题目,将连起来的同一颜色方块的数目用一个数表示。 例如,9 122233331表示为(原版无该简化) 4 1 2 3 1 1 3 4 1 游戏时,你可以任选一个区域消去。设这个区域包含的方块数为x,则将得到x^2个分值。方块消去之后,其余的方块就会竖直落到底部或其他方块上。而且当有一列方块被完全消去时,其右边的所

zhanglili1597895的博客 368

区间dp

poj 1390题意:一排有颜色的方块,每次可以消除相邻的颜色相同的块,得分为方块个数的平方,消除后剩下的方块会合并,问怎样消除方块使得总得分最大。方法:合并初始相邻相同的块,得到颜色数组c和对应的长度len,dp[i][j][k]表示i~j区间,与后面k个相同颜色块一起消除得分的最大值(当然k个块的颜色必须与j相同),考虑len[j]和k这一段怎么消除,有两种可能:1.单独消除,dp[i][j]...

周周的博客 219

DP专辑之线性DP

POJ1390 题目链接:http://poj.org/problem?id=1390 分类:记忆化搜索 dp[i][j][k] 表示,从i到j块且j后面有k块与第j块的颜色一样。dp[l][r][k] = max(dp[l][r][k],dfs(l,i,k+1)+dfs(i+1,r-1,0)); 解题思路:见黑书123页【例题1】方块消除 #in...

weixin_30287169的博客 82

ACM: 动态规划 poj 1390

Blocks   Description Some of you may have played a game called 'Blocks'. There are n blocks in a row, each box has a color. Here is an example: Gold, Silver, Silver, Silver, Silver, Bronze, Bronze, Br

smile_benson 321

PKU1390&&UVA10559方块消除+弱化版P2135

洛谷UVA10559题面: 题目描述 有 n 个带有颜色的方块,没消除一段长度为x的连续的相同颜色的方块可以得到 x^2 的分数,让你用一种最优的顺序消除所有方块使得得分最多。 输入格式 第一行包含测试的次数 t(1≤t≤15) 。 每个案例包含两行。 第一行包含整数 n(1≤n≤200),即框数。 第二行包含 n 个数,代表每个盒子的颜色。数字的大小 1∼n 内。 输出格式 每个案例包含一行一个整数表示答案。 原文: POJ的题面被我吃了,不想放,我好懒嗄(反正一模一样) 我们先做弱化版: 题目描述

SSL_WCR 408

poj1390 Blocks(经典区间dp/消除问题)

题目 思路来源 https://www.cnblogs.com/Tieechal/p/11637638.html清楚明白的讲解 题解 和[Luogu2135] 方块消除及UVA10559 Blocks是一模一样的题目 代码 #include<iostream> #include<cstdio> #include<cstring> us...

小衣同学的博客 610

poj1390 Blocks

区间dp

YHaX的博客 407

poj 1390

题意:一个方块消除的游戏,每次可以消除颜色相同的方块,每次得分是你消除的格子的数量的平方。 黑书上的一题。     参照《算法艺术》上的算法       题目的方块可以表示称color[i],len[i],1     这里l表示有多少"段"不同的颜色方块

XYM-AC之路 1967

POJ-1390-Blocks (复杂区间DP)

\(POJ~1390~~Blocks:\) (很难想的区间DP) \(solution:\) 很好的一道题目。看起来似乎很简单,当时一直认为可以用二维区间DP来完成,转移 \(n^3\)。 后来发现如果用二维表示当前状态,转移可以说无路可走。因为可能存在原本不相邻的多个区间最后是一起消除的。所以我们需要保留下来某一段重复的区间做为我们的一个新的维度。 或者说,(存在原本不相邻的多个区间最后...

weixin_30535565的博客 179
上一篇: POJ 1191
下一篇: POJ 3487 稳定婚姻
MakingMaker
博客等级 码龄15年 6粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值