DP
文章平均质量分 67
muximuxi525
有些事情暂时可以放下但是绝不能放弃
展开
-
POJ 2533 Longest Ordered Subsequence (LOS)
题目大意:求最长升序子序列思路:经典DP,虽然简易,但是没有学长上课时的思想的话,估计做的很艰难~~囧。。状态方程:dp[t] = Max{dp[i] + 1} (a[t] > a[i] && 0 AC program:#includeusing namespace std;int mm[1005]; int ll[1005]; int main(){int n;原创 2012-09-08 20:50:27 · 521 阅读 · 0 评论 -
POJ 1018 滑雪
题目大意:人往低处滑雪,求滑雪滑出最长长度思路:d[i][j]=max{dp[i-1][j]+1,dp[i+1][j]+1,dp[i][j-1]+1,dp[i][j+1]+1},当然要满足一些基本条件:高低. 这里是用记忆化搜索 AC program:#include#include#include using namespace std;int map[105][105原创 2013-03-26 17:34:39 · 741 阅读 · 0 评论 -
Hdu2159 Fate
题目大意:打怪,还有最后一级.但是不想升了..忍耐度有限m,问在杀怪上线为s的情况下能否获取n经验而通关思路:二维背包(基于basic完全).AC Program:#include#include#include#includeusing namespace std;int exp[105],tol[105];int dp[105][105];int n,m,原创 2013-02-07 21:09:46 · 829 阅读 · 0 评论 -
hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
题目大意:悼念512...思路:多重背包...不优化也看过,数据弱...AC Program:#include#include#includeusing namespace std;int n,m;int v;int p[110],h[110],c[110];int dp[110];void ZeroOnePack(int cost,int weight)原创 2013-01-07 21:58:12 · 779 阅读 · 0 评论 -
HDU 2095 兔龟赛跑
题目大意:兔子和乌龟赛跑,乌龟可以骑电动车,并且在路途中建立充电站,每次充电消耗t时间,每次充电后可以骑c距离,问比赛结果思路:dp不能只是看i-1充电站的状态,因为有可能是在之前(0-i-1)的充电站直接充了电就直达当前所在站点的.所以对于每个充电站,要重新扫一遍.dp[i]表示到达i站所用的时间最少是多少.dp[i]一定是由前面的某一个站点充电后到达的最小值.但不一定是i-1这个站原创 2013-04-09 11:12:48 · 916 阅读 · 0 评论 -
HDU 1011 Starship Troopers
题目大意:给出一张树形的地图,然后每个节点就是一个洞,每个洞里面有bugs和brain,现在给出我方有m个骑兵,每个骑兵可以消灭20个bugs,经过的洞穴不能再回头,要收服每个洞穴里面的brain就必须消灭每个洞穴里面的全部bugs,求最大的brain 思路:树形DP.第一次做很纠结,dp的路很漫长..一开始各种纠结,所幸跟羽哥讨论了一便之后思路清晰蛮多了,感谢羽哥...嘿嘿对于x原创 2013-04-10 15:43:30 · 1106 阅读 · 2 评论 -
HDU1074 Doing Homework
题目大意:给出n分homework,每份homework有截止时间 以及需要做多少天,一份homework超出截止时间一天就罚一分,问怎么安排do homework使得罚分最少 思路:第一次状态压缩DP.也很纠结...这次跟文东,鑫固讨论了下,多理解了下下因为总共有15份的homework,所以就有15!的安排方案,暴力肯定超时,但是如果用2进制来dp的话,2^15的状态数,可以接受.原创 2013-04-13 11:29:17 · 857 阅读 · 0 评论 -
POJ1699 Best Sequence 暨2013年USC校赛D题
今晚有点失望,但是也是自己作祟,不能对自己喜欢的girl有太多的要求,至少不能想要求自己一样....因为严于律己宽于待人嘛~~~ 题目思路:给出n(n 思路:这个题目爆搜可以求解,但是最近做了道状态压缩DP,所以坚持用状态压缩DP去做了,但是这个题目描述真的是很坑爹,注意一点就可以了:是不能存在包含在内的情况出现,必须是首尾相连的,考虑到这一点就基本可以了.比如这组数据:2原创 2013-04-20 08:16:41 · 1104 阅读 · 0 评论 -
HDU 4501 小明系列故事——买年货
题目大意:小明有在商场碰上了促销,小明刚好是会员,会员可以利用money,积分,免费拿k件的方式买衣服.小明看上了商场上的n件物品,并对它们标出了相应的花费,以及价值.求小明最多能买价值多少的衣服.思路:多维DP.01背包扩展一下就可以了,麻烦的是有一点在状态转移方程我用四维写的,其实三维更省空间,这里懒惰了.Dp[i][j][k][g]=max(Dp[i-1][j][k][g],Dp原创 2013-04-28 08:28:14 · 853 阅读 · 0 评论 -
POJ1141 Brackets Sequence
题目大意:定义一些规则序列:如果S是规则序列,那么[S]或者(S)也是规则序列,如果A和B都是规则序列,那么AB是规则序列。给出含有圆括号"()"和方括号"[]"的字符串求添加最少括号的规则序列,并打印出来。思路:含有重复子问题,递归动机的DP。当字符串中ww[i]=='(' && ww[j]==')' 或者 ww[i]=='['&&ww[j]==']',那么显然只需要看dp[i+原创 2013-05-23 15:47:01 · 822 阅读 · 0 评论 -
HDU1159 Common Subsequence (LCS)
题目大意:最长公共子序列思路:经典DP题目,状态方程:dp[i][k]= (1) 0 ,当i或者k为0时; (2) dp[i-1][k-1]+1 当X[i]==Y[k]时。 (3)max{ dp[i-1][k] , dp[i][k-1] },当X[i] != Y[i]时AC program:#includeusing原创 2012-09-08 10:39:08 · 524 阅读 · 0 评论 -
HDU 3033 I love sneakers!
寒假回家第一题:这几天忙家务. o(-)_(-)o,然后累了不睡觉,竟然看电视剧,然后又无聊看不下去,每天不切题真心不习惯了,有点痒...题意:Iserlohn 准备收集自己喜欢的运动鞋.呵呵.Iserlohn 有m 钱,然后准备去买k个品牌的运动鞋,对于每种品牌的鞋子,Iserlohn 至少要买一双,现在求Iserlohn 能买到的运动鞋子的最大价值是多少.思路:分组原创 2013-01-23 21:47:21 · 786 阅读 · 0 评论 -
HDU 1059 Dividing
题目大意:Marsha and Bill准备平分他们共同的收集物:marbles;求能否做到完全平分.相同价值的marbles可能有多个.思路:多重背包问题.但是要优化,直接转化为01背包因为:O(7*20000*60000),必定tie了!所以必定得优化,但是单调队列优化的算法不会,只好把用二进制优化的多重背包模板摸过去..下面蓝色字部分来自.其中红色部分是算法优化核心..转化为01背包原创 2013-01-06 21:02:42 · 675 阅读 · 0 评论 -
HDU1003 MAX SUM
题目大意:经典的最大连续子序列和思路:本来是今天开始学点DP的,但是就是一些经典DP例子还是要先掌握啊~~不过学长说这道题如果认真的用DP来解释的话算是很难的题目的~~是不是我就很难考证了~~不过我反正知道~~如果不是提前有思路的话~~我相信没几个人会把这道题当做水题~~有了思路~~就水过了~~因为DP的编码一向都是很简洁的~~只不过我的编码能力还是暴虐全场啊~~只不过是被题目虐的那一种啊~~原创 2012-09-24 17:26:19 · 534 阅读 · 0 评论 -
暑期ACM队内练习赛 H题 数字游戏
H 数字游戏给你一个N位数,从中去掉K个数字,能得到的最大的数是多少?INPUT 有T测试数据,每组测试数据第一行由N和K2个整数组成(1 ≤ K ≤ 500 000),第二行是N位数(非0开头)。 OUTPUT 对每组数据输出去掉K个数字得到的最大数。 SAMPLE TESTS INOUT34 2 19247原创 2012-09-14 11:41:30 · 18192 阅读 · 0 评论 -
黑书DP专辑
pagesectionnotitlesubmit1131.5.1例题1括号序列POJ11411161.5.1例题2棋盘分割POJ11911171.5.1例题3决斗Sicily18221171.5.1转载 2012-09-24 09:30:24 · 2240 阅读 · 0 评论 -
hdu 1114 Piggy-Bank
题目:能否最小价值的钱来装满整个储钱罐,每个放入储钱罐的钱的数量不限.完全背包问题思路:------dp,从0开始AC program:#include#include#include#include#includeusing namespace std;int value[505],weight[505];int dp[10005];#define inf 100原创 2012-12-15 17:15:30 · 578 阅读 · 1 评论 -
HDU2602 Bone Collector
dp,从0开始....#include#include#include#include#includeusing namespace std;int value[1005],weight[1005];int dp[1005][1005];int main(){int test,n,v;cin>>test;while(test--){ cin>>n>>v; fo原创 2012-12-15 12:04:51 · 583 阅读 · 0 评论 -
HDU 1171 Big Event in HDU
题目大意:hdu计算机学院分离为2部分,所有设施也应该要分为2部分,求在尽可能的分成相等的2部分,A部分不小于B部分的前提下价值A和价值B..所有设施给出的模式是: 每类设施有m件,同一类的设施价值相同.思路:多重背包问题,转化为01背包解决,更加高效的方法can't code and know noting...不过时间效率是O(V*Σlog[num[i]]),not in this O(原创 2013-01-04 19:07:16 · 758 阅读 · 2 评论 -
HDU1203 I NEED A OFFER!
题目大意:就是给出该学生攒下的总money 还有各校的学费以及该学生能上该学校的概率,求该学生能接到至少一份offer的最大概率思路:也就是求该学生没有得到一份offer的最小概率..01背包..注意边界值..#include#include#include#include#includeusing namespace std;double dp[10005];int wei原创 2013-01-04 14:31:18 · 530 阅读 · 0 评论 -
HDU2844 Coins
题目大意:HIBiX想买一个很nice的watch,他有一堆coins,HiBix估计这个表的价格不会超过m,所以就打算用硬币拼出在m价格以内的价格数以备付款.来一个"苹果式还债",哈哈... 现在HiBiX问这堆硬币可以堆出多少钱值(在m以内)思路:用多重背包的装满思想,就是对于每一个V,都尽量的去装.如果装满的就是能够拼出的相应价格,但是有一点有点蒙.看代码最后处....原创 2013-01-06 22:24:34 · 964 阅读 · 0 评论 -
棋盘寻宝扩展
题目描述:现在有一个8*8的棋盘,上面放着64个不同价值的礼物,每个小的棋盘上面放置一个礼物(礼物的价值大于0小于100),一个人初始位置在棋盘的左上角,每次他只能向下或向右移动一步,并拿走对应棋盘上的礼物,结束位置在棋盘的右下角。从棋盘的左上角移动到右下角的时候的,每次他只能向下或向右移动一步,并拿走对应棋盘上的礼物,但是拿到的所有的礼物的价值之和不大于一个限定值limit,请设计一个算原创 2013-08-31 21:33:33 · 1024 阅读 · 0 评论