UVALive 5790 Ball Stacking DP】的更多相关文章

DP的方向真的很重要,这题做的时候死活想不出来,看了题解以后恍然大悟原来这么简单. 题意: 有n层堆成金字塔状的球,若你要选一个球,你必须把它上面那两个球取了,当然也可以一个不取.求选的球最大的权值和. 题解: 把原来的金字塔变换一下形式,转换成直角三角形的样子. 假如原三角形是这样的: 然后可以转化成这个样子: 这样子的话,要选择一个球,就要选择他左上的那个矩形. 这样就容易转移了,用dp[i][j]表示变换后的图形中,第 i 行取的最下面一个球是j,很明显这样下一行就只能小于j个球了. 不过…
比赛总结 题目 题意: 有n层堆成金字塔状的球,若你要选一个球,你必须把它上面那两个球取了,当然也可以一个不取.求选的球最大的权值和. 题解: 将这堆球转成举行,第一行是(0,0),第二个是(1,0)和(0,1)……如果选(i,j)的话,(i,j)到(0,0)之间的都要选.先把f(i,j)=(i,j)+……+(0,0)预处理出来. 然后用dp[j]表示在j这一列有球被选,且j+1-n-1没选过的最大权值.如果选了(i,k)且k>=j的话,f(i,j)就加了两次所以要减去.算出选(i,k)且k+1…
Dragon Ball Problem Description   Sean has got a Treasure map which shows when and where the dragon balls will appear. some dragon balls will appear in a line at the same time for each period.Since the time you got one of them,the other dragon ball w…
题 There are 2N white balls on a table in two rows, making a nice 2-by-N rectangle. Jon has a big paint bucketfull of black paint. (Don’t ask why.) He wants to paint all the balls black, but he would like to have somemath fun while doing it. (Again, d…
[题目]F - Leftmost Ball [题意]给定n种颜色的球各k个,每次以任意顺序排列所有球并将每种颜色最左端的球染成颜色0,求有多少种不同的颜色排列.n,k<=2000. [算法]计数DP [题解]只看黑体字部分即可. 自己考虑了几种计数方案,都不能实现.一种从左到右,但要记录每种球剩余多少,不可行.一种从右到左枚举白球包含区间填充,但因为只看白球,每种颜色没有关键球,会有重复统计的问题. 计数的关键在于白球的原色不重要以及每种颜色关注最左端的球(这里不含变成白球的球). 本题既然nk…
题目链接: http://acm.hust.edu.cn/vjudge/problem/116998 Cent Savings Time Limit: 3000MS 问题描述 To host a regional contest like NWERC a lot of preparation is necessary: organizing rooms and computers, making a good problem set, inviting contestants, designin…
题目链接: http://acm.hust.edu.cn/vjudge/problem/47664 Eleven Time Limit: 5000MS 问题描述 In this problem, we refer to the digits of a positive integer as the sequence of digits required to write it in base 10 without leading zeros. For instance, the digits o…
题意:给定一个序列,有 n 个数,只有01,然后你进行k次操作,把所有的1变成0,求有多种方法. 析:DP是很明显的,dp[i][j] 表示进行第 i 次操作,剩下 j 个1,然后操作就两种,把1变成0,把0变成1.也可以用记忆化来做. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string> #include <cst…
题意:给出一个长字符串,再给一个短字符串,进行匹配,如果第i个恰好匹配,则 +8,:如果不匹配,可以给长或短字符串添加-,先后匹配,这样-3, 连续的长字符串添加-,需要减去一个4:也可不给添加-,则-5. 析:dp[i][j][0] 表示第一个字符串第 i 个位置,和第二个字符串的第 j 个位置相匹配,dp[i][j][1] 表示第一个字符串第 i 个位置,和第二个字符串的第 j 个位置加_相匹配. 那么怎么转移呢?如果s1[i] == s2[j] 那么 dp[i+1][j+1][0] = M…
题意:以辆赛车可以从x轴上任意点出发,他的水平速度允许他向每向上移动v个单位,就能向左或向右移动v/r个单位(也就是它的辐射范围是个等腰三角形) 现在赛车从x轴出发,问它在到达终点前能吃到的最多钻石. 析:那个v是怎么变那个是不变的.比例考虑每个钻石的向下辐射范围,并且将其投影到x轴上的两个点,(辐射范围与x轴的两个焦点),然后我们就把题目转化成了一个区间覆盖问题, 我们可以在每一个钻石求出一个覆盖范围,什么意思呢,既然水平速度   向左的最大值等于向右的最大值,那么肯定是一个等腰三角形了,只需…