[动态规划]Pku1390 Blocks

可微编程:当深度学习遇见物理定律,重塑科学计算新范式 本文探讨了可微编程如何将深度学习与物理定律相结合,重塑科学计算范式。通过自动微分技术,它将物理方程融入可微计算图,使模型在数据驱动的同时遵守物理约束。文章以神经常微分方程为例,阐述了其在连续系统建模、科学模拟器优化等领域的应用,并分析了当前面临的挑战与最佳实践路径。 阅读详情
Blocks
Time Limit: 5000MS Memory Limit: 65536K
Total Submissions: 1497 Accepted: 567

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, Gold.
The corresponding picture will be as shown below:

Figure 1
If some adjacent boxes are all of the same color, and both the box to its left(if it exists) and its right(if it exists) are of some other color, we call it a 'box segment'. There are 4 box segments. That is: gold, silver, bronze, gold. There are 1, 4, 3, 1 box(es) in the segments respectively.

Every time, you can click a box, then the whole segment containing that box DISAPPEARS. If that segment is composed of k boxes, you will get k*k points. for example, if you click on a silver box, the silver segment disappears, you got 4*4=16 points.

Now let's look at the picture below:

Figure 2

The first one is OPTIMAL.

Find the highest score you can get, given an initial state of this game.

Input

The first line contains the number of tests t(1<=t<=15). Each case contains two lines. The first line contains an integer n(1<=n<=200), the number of boxes. The second line contains n integers, representing the colors of each box. The integers are in the range 1~n.

Output

For each test case, print the case number and the highest possible score.

Sample Input

2
9
1 2 2 2 2 3 3 3 1
1
1

Sample Output

Case 1: 29
Case 2: 1

Source

 

题目大意:请参看刘汝佳的《算法艺术与信息学奥赛》。

题解:

题目的方块可以表示成color[i],len[i],1 <= i <= l,这里l表示有多少“段”不同的颜色方块。color[i]表示第i段的颜色,len[i]表示第i段的方块长度。让f[i][j][k]表示把(color[i], len[i]),(color[i + 1],len[i + 1]……(color[j], len[j] + k)合并的最大得分。

考虑(color[j], len[j] + k)这一段,要不马上消掉,要不和前面的若干段一起消。

如果马上消掉,就是f[i][j][0] + (len[j] + k) ^ 2

如果和前面若干段一起消,可以假设这“若干段”中最后面的那一段是a,则此时得分是f[i][a][len[j]] + f[a + 1][j - 1][0].

f[i][j][k] = max(f[i][j - 1][0] + (len[j] + k )^2, f[i][a][k + len[j]] + f[a + 1][j - 1][0] }

其中color[a] = color[j].

理解:这种线性dp思想和剖分类dp类似,只不过本题需要添加一个域来考虑这种类型的情况:

1 1 1 x x x 1 1 1,将后面的111和前面的111一起合并时,得分是6*6,若没有第三个域k来表示后面还有多少个方块,就没办法统计得分。实现这个dp可以用记忆化搜索,当然也可以类似剖分地写,不过记忆化搜索容易实现很多。

codes:

从零开始用 C# 打造工业级上位机系统:完整项目实战 本文介绍了一个基于C#开发的工业级上位机系统项目。该系统采用分层架构设计,包含通信、数据采集、UI展示、告警日志等模块,支持Modbus协议和串口通信。文章详细阐述了系统架构设计、关键模块实现(如Modbus通信封装、实时数据采集、告警系统等)以及性能优化策略。该项目已在实际工控场景中稳定运行超过1年,具备良好的可扩展性和稳定性,适合有一定C#基础的开发者参考学习工业软件开发实践。 阅读详情

相关推荐

快速了解Spyder

一 面板介绍菜单栏:放置所有功能工具栏:放置快捷菜单,可以通过菜单栏中的View的Toolbars的复选框来勾选工作区:写代码的地方属性页的标题栏:可以显示当前代码的名字和位置查看栏:查看文件、调试时的对象及变量输出栏:查看程序的输出信息,也可以作为shell终端来输入Python语句状态栏:用来显示当前文件权限、编码,光标指向位置和系统内存二 注释功能注释功能为编写代码很常用功能,下面介绍Spy...

实践求真知 1万+

pku动态规划题目列表

来源:网上某个朋友 文章源地址:http://www.cppblog.com/Felicia/archive/2007/08/26/30848.aspx 1015 Jury Compromise 1029 False coin 1036 Gangsters 1037 A decorative fence 1038 Bugs Integrated, Inc. 1042 Gone Fis...

weixin_33929309的博客 314

深度解析direct path write temp与ASM IO性能问题:Oracle 19.17视图查询优化指南

本文深度解析了Oracle 19.17版本中复杂视图查询出现`direct path write temp`与`ASM IO for non-blocking poll`性能瓶颈的根本原因。通过对比11.2.0.4版本的执行计划差异,文章提供了从CBO参数调整、存储层优化到SQL架构重构的完整实战调优指南,帮助DBA有效解决升级后的查询性能问题。

2y3u4i5o6p的博客 1100

【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的博客 405

ROS2实战:手把手教你用CMake集成自定义DDS(以CycloneDDS为例)

本文详细介绍了如何在ROS2中通过CMake集成自定义DDS(以CycloneDDS为例),涵盖环境准备、源码编译、ROS2工作区集成、性能调优及常见问题排查。通过RMW中间件抽象层,开发者可以灵活切换DDS实现,提升系统实时性和可靠性。

weixin_29284201的博客 347

【测开求职】面试题:JAVA 吐血整理

本篇文章包含本次测开工程师秋招过程中遇到的所有JAVA面试题,全文两万字,亲测应对各个大厂的面试毫无压力👉

vector的博客 1211

pku 1390 Blocks(DP)

参照黑书上写的。#include #include #include #include #include #include #define PI 3.14159265358979323846264338327950288#define _clr(a,b) memset(a,b,sizeof(a))template T _abs(T a){ if(a<0) r

low coder 774

C++软件调试与异常排查从入门到精通专栏介绍与文章汇总

根据近几年排查软件异常的实践与经验,系统地讲解了C++软件异常常见原因与常用排查方法,以图文并茂的方式给出具体的分析实例,带领大家逐步掌握C++软件异常排查的相关技术与要领。

dvlinker的技术专栏 23万+

[PKU暑课笔记] 动态规划(二) 最长上升子序列 POJ1458最长公共子序列

五●例题 ●最长上升子序列 1、子问题:求以ak(k=1, 2, 3…N)为终点的最长上升子序列的长度(一个上升子序列中最右边的那个数,称为该子序列的 “终点”) 2、确定状态:子问题只和一个变量--数字的位置相关。 因此序列中数的位置k就是“状态”,而状态 k 对应的“值”,就是以ak 做为“终点”的最长上升子序列的长度。 状态一共有N个。 3、状态转移方程: maxLen

海蛎丝Ssss 1191

【华为OD机试真题】459、小扇和小船的数字游戏、数字游戏 | 机试真题+思路参考+代码解析(CD卷)(C++、Java、Py)

### 🎃题目描述 >小扇和小船今天又玩起来了数字游戏,小船给小扇一个正整数 n(1  现在求 m 的最小值

KJ.JK 1718

uniapp - 实现苹果App打包上架App Store应用商店详细教程,详解Hbuilder打包编译ipa发布上传到苹果ios软件商店全流程,提供云打包/离线本地打包ios、申请IOS苹果证书方法

uni-app,苹果ios,苹果app,打包编译,appstore应用商店,ipa发布到软件商店,uniapp的app苹果应用商店上架,上架苹果APPStore,uniApp打包的ipa文件上传到商店,上架苹果商城,审核失败,被拒绝,UniApp打包ipa文件,上架iOSAppStore流程指南,最新详细教程最全,Hbuilder打包发布iosapp,苹果云打包上线全过程,云打包IPA并上传到商店,打包iOSipa文件后怎么发布到应用商店,苹果证书申请教程,ios证书申请,mac电脑,审核很久

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

POJ1390 Blocks——动态规划——pku1390

经典的动态规划,LRJ神牛的书上经典例题第一题。 开一个三维数组,f[i][j][k]表示将i~j这一段,连上后面的k个格子全部消去所能够获得的最大价值。 状态转移方程: f[i][j][k]=Max{           Max{f[i][p][len[j]+k]+f[p+1][j-1][0]}(color[p]=color[j] and i<p<j)//和前面某段一起消掉 ...

weixin_33756418的博客 186

Python爬虫抓取淘宝商品详情页信息:从入门到高级技术应用

通过本篇博客,我们了解了如何使用Python爬虫抓取淘宝商品详情页的信息,如何使用requests和Selenium抓取静态和动态内容,如何应对淘宝的反爬虫机制,如何将抓取的数据保存到CSV文件等。随着爬虫技术的不断发展,开发者可以根据需要选择合适的工具和技术,如使用分布式爬虫框架提高抓取效率,或者利用OCR技术处理验证码等问题。在进行淘宝爬虫时,需要注意遵循相关法律法规和平台的爬虫政策,避免对平台造成过度的负担或侵犯其合法权益。

2201_76125261的博客 460

1390:Blocks

动态规划,递归 难 参考:https://blog.youkuaiyun.com/PKU_ZZY/article/details/51442591 //动态规划,递归 #include <iostream> #include <cstring> using namespace std; const int N = 201; int t, n, m; int color[N]; int num[N], c[N]; int ans[N][N][N]; //r位右边,与r同色的还有len个情况下

weixin_49403900的博客 411

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

1390Blocks

动态规划,递归 难 参考:https://blog.youkuaiyun.com/PKU_ZZY/article/details/51442591 //动态规划,递归 #include <iostream> #include <cstring> using namespace std; const int N = 201; int t, n, m; int color[N]; int num[N], c[N]; int ans[N][N][N]; //r位右边,与r同色的还有len个情况下

web15085181368的博客 141

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【DP+记忆化搜索】PKU-1390-Blocks

http://poj.org/problem?id=1390 又是黑书上的一道坑爹题,不过话说越坑爹越能学到东西……这里就贴上黑书上的解析吧…… 分析 线性DP 参照《算法艺术》上的算法 题目的方块可以表示称color[i],len[i],1 这里l表示有多少"段"不同的颜色方块 color[i]表示第i段的颜色,len[i]表示第i段的方块长度 让f[i,j,k]表示把(c

AndRing的专栏 503

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

[动态规划]PKU Bridging signals

Bridging signals Time Limit : 2000/1000ms (Java/Other)   MemoryLimit : 20000/10000K (Java/Other) Total Submission(s) :4   Accepted Submission(s) : 1 Problem Description 'Oh no, they've done it aga

MasonChen的专栏 483

noi2004-郁闷的出纳员(cashier) 解题报告

  NOI2004郁闷的出纳员【问题描述】 OIER公司是一家大型专业化软件公司,有着数以万计的员工。作为一名出纳员,我的任务之一便是统计每位员工的工资。这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资。如果他心情好,就可能把每位员工的工资加上一个相同的量。反之,如果心情不好,就可能把他们的工资扣除一个相同的量。我真不知道除了调工资他还做什么其它事情。

幻想の天地 2051

[动态规划]Pku2411--Mondriaan's Dream

Mondriaans DreamTime Limit: 3000MS Memory Limit: 65536KTotal Submissions: 3732 Accepted: 2156DescriptionSquares and rectangles fascinated the famous Dutch painter

幻想の天地 2022

[动态规划+矩阵快速幂优化]Pku3420--Quad Tiling

Quad TilingTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 1801 Accepted: 698DescriptionTired of the Tri Tiling game finally, Michael turns to a more

幻想の天地 1385

[ac自动机]zoj3228 Searching the String

Searching the StringTime Limit: 7 Seconds      Memory Limit: 129872 KB Little jay really hates to deal with string. But moondy likes it very much, and shes so mischievous that she often gives

幻想の天地 1366

Pku1037 A decorative fence 动态规划+递推

A decorative fenceTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 3468 Accepted: 1122DescriptionRichard just finished building his new house. Now the only

幻想の天地 1354

[数学-欧拉函数]Pku2478--Farey Sequence

http://acm.pku.edu.cn/JudgeOnline/problem?id=2478 Farey SequenceTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 5575 Accepted: 1998DescriptionThe Fare

幻想の天地 1056

[AC自动机+dp]PKU 3691--DNA repair

http://acm.pku.edu.cn/JudgeOnline/problem?id=3691DNA repairTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 1469 Accepted: 650DescriptionBiologists f

幻想の天地 962

[数学-farey序列]Pku3374--Cake Share

http://acm.pku.edu.cn/JudgeOnline/problem?id=3374 Cake ShareTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 2836 Accepted: 700DescriptionUpdog pre

幻想の天地 947

[动态规划,tsp问题]pku2288 Islands and Bridges

Islands and BridgesTime Limit: 4000MS Memory Limit: 65536KTotal Submissions: 4173 Accepted: 1008DescriptionGiven a map of islands and bridges that connect these isl

幻想の天地 920
上一篇: [动态规划]Zju1234--Chopsticks
下一篇: 博弈论相关(转)
fstephen
博客等级 码龄18年 7粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值