动态规划
文章平均质量分 82
kkkkahlua
这个作者很懒,什么都没留下…
展开
-
hdu 1505 1506 2870 dp小礼包
题目链接思路:读入的时候先处理一下,使得 map[i][j] 记录的是 第 i 行中 连续到第 j 列有多少个 F.就样例而言R F F F F FF F F F F FR R R F F FF F F F F FF F F F F F可以被处理为0 1 2 3 4 51 2 3 4 5 60 0 0 1 2 31 2 3 4 5 6原创 2016-10-12 22:01:33 · 546 阅读 · 0 评论 -
tyvj 1004 滑雪 dfs + dp
题目链接/*先吐槽一发,真的是很容易跑题啊我...本来是在看压位的知识,一篇博文里面推荐了tyvj里一道题(tyvj 2157)。于是我就跑去看,一看发现去年刚转C++时写了一道题还没过(写得还特别丑),所以今天就又捡起来写了一发。之后就跑得更远了...结果到现在还没再看压位...。*/题意:给定一个 n * m 的网格,每个格子有自己的高度,从一个原创 2017-08-09 23:47:00 · 290 阅读 · 0 评论 -
poj 3162 Walking Race 树形dp + 单调队列
题目链接题意:给定一棵树,编号为 1 ~ n, 先要求得树上每一点与跟它距离最远的点之间的距离,记为数组 a,再求得 a 中最长的区间,使得该区间中的元素最大值与最小值的差值不大于给定值 m其实纯粹是两道题拼起来,两部分各自的典型例题分别见:1. hdu 2196 题目链接 blog链接题意:给定树,求树上每一点与跟它距离最远的点之间的距离2.原创 2017-07-24 21:26:06 · 370 阅读 · 0 评论 -
hdu 2196 Computer dfs / 树形dp
题目链接(注(给自己看):写这题时 dfs 的写法还很丑陋(P的痕迹太重...),在之后几篇树形dp的题中会有改观(大概可以称得上))题意:给定一棵树,结点编号为 1 ~ n, 求得树上每一点与跟它距离最远的点之间的距离思路:法一:很快联想到树的直径,因为求树的直径就是:任取一个点做一次深搜,找到的最远的点必然是树直径的一个端原创 2017-07-24 21:21:47 · 273 阅读 · 0 评论 -
hdu 6082 度度熊与邪恶大魔王 背包
题目链接题意:有 n 个怪兽,每个怪兽各有 a[i] 的生命 与 b[i] 的防御;有 m 种技能(可无限次使用),每种技能有 k[i] 的代价 与 p[i] 的攻击;第 i 种技能 对 第 j 个怪兽造成的伤害为 攻击 - 防御,即 p[i] - b[j].现要求消灭怪兽的最小代价。若不能消灭,输出 -1.数据范围:111000原创 2017-08-07 23:11:23 · 362 阅读 · 0 评论 -
usaco2.3 prefix trie树 + dp
题目链接题意:给定一些 小 字符串,求得能由这些 小 字符串 拼接成的 大 字符串的 前缀 的最大值。思路:题目很直白显然,就是 trie 树 和 动态规划。其实不用 trie 树也可以...但是怎么说呢以前从来没写过 trie 树,想写一个试试看,于是就写了。觉得这个时间还是挺有说服力的吧。(只是写得比较丑陋,请多多包涵Executin原创 2017-02-26 17:01:47 · 241 阅读 · 0 评论 -
hdu 2660 Accepted Necklace dp / dfs
题目链接题意:给出 N 块 石头,从中 至多 选取 k 块(不能重复),重量不得超过 W,求最大价值思路:1. dp 三重循环 最外层为 当前考虑的石头,里面两层为 取了多少块 和 重量,这两层先后顺序无所谓,总之都是从大到小然而题意表述不清,以为一定要选取 k 块石头...事实上是至多。AC代码如下:#include #include原创 2017-07-13 23:18:04 · 221 阅读 · 0 评论 -
usaco2.3 nocows dp + 失败的递归
题目链接题目大意:给出树的节点个数和深度,并且对树的限定是,每个节点的孩子数为 2 或为 0,问有多少种形态不同的数。思路:最开始的时候是这样想找规律的举个例子吧,比如节点数 11, 深度 5很显然前两层都是满的,剩下节点 11 - 3 = 8,这 8 个要分到 3 层去.可以是 2 2 4, 2 4 2, 4 2 2.要求是后一个数 因原创 2017-03-05 22:37:52 · 242 阅读 · 0 评论 -
usaco2.2 subset 01背包
题目链接题意就是取 {1, 2, 3, ..., N} 的一个 subset,使得这个 subset 内元素的和为一个给定的值(太久没做题的)我一开始竟然(想都没想)(并且数据范围都没看)(十分愚蠢地)写了递归,显然爆时间再后来写了一个丑陋的 dp,第 i 个元素取: dp[i-1][j-i]; 不取:dp[i-1][j];最后才意识到这是个01背包,求将原创 2017-02-25 17:14:05 · 290 阅读 · 0 评论 -
hdu1176 免费馅饼 两种动态规划 三段程序(分别为TLE,AC,AC)
题目链接思路:1)做完了最长上升子序列(hdu5748)和一道类似的hdu1087 之后,被推荐了这道题目,于是自然而然地就想到了一个状态转移方程。从之前任意某一秒所在的位置到当前所在的位置,这之间的距离如果能在这段时间内到达的话,就纳入考虑范围。sum[i] = max(sum[j]+1) ,j复杂度是n^2然后毫无悬念地TLE了TLE代码原创 2016-09-30 18:49:48 · 397 阅读 · 0 评论 -
hdu1069 Monkey and Banana 一个简单的动态规划
题目链接前一天睡前看了一道题,睡觉的时候想了想,一大早(误)起来写了一下交了然后就AC了。嘿!太难得了!(……感觉是思路很简单的一个动态规划,然后也没有做任何优化,连双关键字排序也只是写的选择排序的......因为感觉数据量实在很小啊(其实是因为不熟悉怎么用sort...)。首先读入的时候处理一下,把任意可能的砖块都存到数组里面,默认前两个为长宽,第三个为高。然后从大到小双原创 2016-10-03 10:09:39 · 400 阅读 · 0 评论 -
hdu1171 Big Event in HDU 动态规划
题目链接题意:输入一系列器械的价值及分别的个数,将它们尽可能地均分。思路:先计算出所有器械价值的总和,除以2得到一个max,那么少的那部分的价值肯定在0-max当中开始动态规划。价值为0是肯定可以做到的,标记为1(可取到)。此后对每件器械,在前面的基础上可以取到的价值进行标记。最后从max开始往下找,找到的第一个可以的就是少的那部分的价值。原创 2016-10-03 20:22:31 · 337 阅读 · 0 评论 -
hdu2570 迷瘴 动态规划
题目链接题意:有多瓶体积一样浓度不一样的药水,要使混合后浓度小于等于w,求可能的体积最大值。思路:显然又是一道动态规划。想了好一会儿数组下标该取什么,如果浓度不是小数的话,取浓度做起来很方便,在0那么把数组下标取作混合的瓶数怎么样?这样想了然后就通了然后就写过了。dp[瓶数] = 浓度和,(因为每一瓶的体积都相同,所以很显然的所有的浓度加起来除以瓶数原创 2016-10-03 22:00:17 · 432 阅读 · 0 评论 -
hdu2159 FATE 动态规划(多重背包
题目链接关于以什么为横纵坐标的问题还是绕了好久。一开始用的是 dp[经验][忍耐度] = 物品个数 ,转移方程是 dp[i][j] = min(dp[i-exp[kk]][j-lp[kk])+1; 可以从那些已经标记过的或者说从dp[0][0]转移过来。交了以后WA了,为什么呢......原来经验值可以爆啊。好吧那么就换。改用 dp[物品个数][忍耐度] = 经验,转移原创 2016-10-09 21:30:56 · 383 阅读 · 0 评论 -
2017多校四 1012题 hdu 6078 Wavel Sequence dp好题
题目链接题意:给定两个数组 a 与 b,找到 a 中的一个子序列满足a1a2>a3a4>a5a6...并且在 b 中也有一个子序列与 a 一一对应,即 f1,f2,...,fk(1≤fi≤n,fifi+1) and g1,g2,...,gk(1≤gi≤m,gigi+1), where afi=bgi参考:http://blog.csdn.net/clx555原创 2017-08-06 22:25:54 · 341 阅读 · 0 评论