UVA10559&POJ1390 Blocks 区间DP】的更多相关文章

题目传送门:http://poj.org/problem?id=1390 题意:给出一个长为$N$的串,可以每次消除颜色相同的一段并获得其长度平方的分数,求最大分数.数据组数$\leq 15$,$N \leq 200$ DP好题,状态转移方程可能这辈子都不会想出来$qwq$看完题就知道是区间DP,设状态为$f_{i,j}$,然后考虑转移的时候发现:中间可能有一部分零散的和两端相同颜色的块,转移十分麻烦于是考虑神仙状态:$f_{i,j,k}$,其中$i,j$同上,$k$表示 在块$j$之后有且仅有…
题目链接:POJ 1390.Blocks 题意: 有n个方块排成一列,每个方块有颜色即1到n的一个值,每次操作可以把一段相同颜色的方块拿走,长度为k,则获得的分数为 \(k\times k\),求可获得的分数最大值. 其中每次要把一段全部拿走,不能只取其中一部分. 每个测试点T组数据,\(T\leq15\) , \(n\leq200\) . 想了好一会.. 思路: 根据题意这显然是\(O(n^3)\)的区间DP,可以发现仅设两个维度l,r不足以转移信息,考虑在每次合并两个区间时,我们需要知道区间…
题目:https://www.luogu.org/problemnew/show/UVA10559 应该想到区间dp.但怎么设计状态? 因为连续的东西有分值,所以应该记录一下连续的有多少个. 只要记录与边界连续的有多少个就能涵盖所有的连续了.只记一边的边界即可. 两个转移:用掉记录的那些连续的 或 在自己区间中再找一个一样颜色的使连续数量+1. 用掉了以后剩余部分的连续长度就是0.也许 j-1 和 j 同色,但这个可以在另一个转移里体现,所以没问题. #include<iostream> #i…
Blocks Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 5252   Accepted: 2165 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, Sil…
\(Des\) • 有一排数量为N的方块,每次可以把连续的相同颜色的区间消除,得到分数为 区间长度的平方,然后左右两边连在一起,问最大分数为多少. • n<=1 \(Sol\) 正解状态设得奇奇怪怪巧巧妙妙. \(f[i][j][k]\)表示区间\([i,j]\)且\(j\)右边还有\(k\)个和\(j\)同色的方块,消除所有这些的最大分数.转移分为两种: 1.将右端点和多出的\(k\)个一起消掉,分数为\(f[i][j-1]+(k+1)^2\). 2.选一个与右端点同色的点\(p\),消掉\(…
Blocks [题目链接]Blocks [题目类型]区间DP &题意: 给定n个不同颜色的盒子,连续的相同颜色的k个盒子可以拿走,权值为k*k,求把所有盒子拿完的最大权值 &题解: 这题是在16北大集训的pdf看见的,听说黑书上也有.它的那个多加一维真的很难想,dp方程现在也没怎么懂,先记一下吧,以后回来认真补 &代码: #include <iostream> #include <cstring> #include <cstdio> using…
题目:https://www.luogu.org/problemnew/show/UVA10559 区间DP,有点难想: 为了方便,先把原来就是连续一段相同颜色的点看做一个点,记一下长度: f[i][j][k] 表示右边有 k 个和 j 颜色相同的点时(其它都已经各自被消掉),消除 i ~ j 区间的答案: 从消除 j 点来考虑,有两种方法:1.和右边那 k 个点合并消除,所以 f[i][j][k] = f[i][j-1][0] + ( len[j] + k )2 2.和右边以及区间中的某个相同…
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, Gold. The corresponding picture will be as sho…
题意 t组数据,每组数据有n个方块,给出它们的颜色,每次消去的得分为相同颜色块个数的平方(要求连续),求最大得分. 首先看到这题我们发现我们要把大块尽可能放在一起才会有最大收益,我们要将相同颜色块合在一起,我们可以分区间进行处理,便可用区间dp解决,我们尝试合并区间我们定义状态f[i][j]表示合并i-j这个区间的最大得分,那么状态转移方程便可写为 f[i][j]=max(f[i][j],f[i][u]+f[v][j]+(v-u+1)^2)(i=<u,v<=j) 我们可以发现我们这样去做不一定…
有n个带有颜色的方块,没消除一段长度为x的连续的相同颜色的方块可以得到x^2的分数,让你用一种最优的顺序消除所有方块使得得分最多. 输入格式 第一行包含测试的次数t(1≤t≤15) 每个案例包含两行.第一行包含整数n(1≤n≤200),即框数.第二行包含n个数,代表每个盒子的颜色.数字的大小1~n内. Solution n比较小,所以我们要用n^3的dp. 我们设dp[i][j][k]表示从i缩到j,j要和j后面的k个格子缩到一起能获得的最大分数. 转移的话枚举断点,如果有一个点和j相等,就把k…