E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
DP_普通dp
Hdu 1561 The more, The Better (
DP_
树形DP(背包))
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1561题目大意:给定n个地点,每个地点藏有cost[i]的宝物,取得某些宝物有时需要先取其他宝物,现在让我们选m个地点问最多可以选多少宝物?解题思路:和Poj1155、1947一样,都是在树形结构上进行分组背包处理。本题的依赖关系可以理解成树边,到达子节点必须先经过父节点,本质是一样的,这样可以建立起一
woshi250hua
·
2012-06-06 13:00
算法
struct
tree
测试
null
[置顶] 【
DP_
背包专辑】【10.14最新更新】
这短时间看了论文《背包九讲》,看到背包问题解法中的优美之处也看到背包问题在现实中的应用,总结出一句话:背包问题值得一看。 背包问题可以概括为这样的模型:有若干种选择,每种选择有一定的代价和价值,做某些选择会得到特定的状态,问我们在约定的条件下怎么得到特定的状态?这里的状态可以是代价和或者价值和或者由其他这两者组合而来的状态。这类问题需要枚举每种状态,但是可以通过动态规划减少枚举的次数,提高效
woshi250hua
·
2012-06-05 21:00
apple
优化
生活
tree
Poj 2923 Relocation (
DP_
状态压缩DP(背包))
题目链接:http://poj.org/problem?id=2923题目大意:给定n个物品和两辆车的最大运载量,每次两辆车都要同时开动,问最少开几次能把所有物品运走,1 #include #defineMAX2100 #defineINF0xfffffff #definemin(a,b)(a)=cost[i];--j) if(vis[j-cost[i]])vis[j]=1; } for(i=
woshi250hua
·
2012-06-05 21:00
算法
测试
Poj 1155 TELE (
DP_
树形DP(背包))
题目链接:http://poj.org/problem?id=1155题目大意:给定一棵树,1为根结点表示电视台,有m个叶子节点表示客户,有n-m-1个中间节点表示中转站,每条树边有权值。现在要在电视台播放一场比赛,每个客户愿意花费cost[i]的钱观看,而从电视台到每个客户也都有个费用,并且经过一条边只会产生一个费用。问电视台不亏损的情况最多有几个客户可以看到比赛?1 #include #def
woshi250hua
·
2012-06-05 20:00
算法
struct
tree
测试
null
Poj 3181 Dollar Dayz (
DP_
背包)
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=3181题目大意:给定一个数p,要求用K种币值分别为1,2,3...K的硬币组成p,问方案数,1,2,2和2,2,1算一种方案即与顺序无关,n #include #defineMAX1100 intn,m; intdp[MAX][MAX]; voidAdd(intn,intm){ inti
woshi250hua
·
2012-06-05 16:00
测试
Poj 1787 Charlie's Change (
DP_
背包)
题目链接:http://poj.org/problem?id=1787题目大意:给定一个数p,要求用四种币值为1,5,10,25的硬币拼成p,并且硬币数要最多,如果无解输出"Charliecannotbuycoffee.",1=1,1 #include #defineMAX20000 intp,dp[MAX],path[MAX]; intnum[50],mon[50],used[MAX];
woshi250hua
·
2012-06-05 13:00
优化
测试
Path
Poj 2184 Cow Exhibition (
DP_
背包)
题目链接:http://poj.org/problem?id=2184题目大意:给定n头牛,每头有属性智商和幽默感,这两个属性值有正有负,现在要从这n头牛中选出若干头使得他们的智商和与幽默感和不为负数,并且两者两家和最大,如果无解输出0,n #include #defineMIN110 #defineMAX210000 #defineINF1000000000 #definemax(a,b)(a)
woshi250hua
·
2012-06-05 10:00
测试
Poj 1947 Rebuilding Roads (
DP_
树形DP(背包))
题目链接:http://poj.org/problem?id=1947题目大意:给定一棵节点数为n的树,问从这棵树最少删除几条边使得某棵子树的节点个数为p,1s的边不需删除,所以-1)测试数据:2121311213321213111121314152627284941041111612131415262728494104111181213141526272849410411代码:#include
woshi250hua
·
2012-06-05 00:00
struct
tree
测试
null
Poj 1947 Rebuilding Roads (
DP_
树形DP(背包))
题目链接:http://poj.org/problem?id=1947题目大意:给定一棵节点数为n的树,问从这棵树最少删除几条边使得某棵子树的节点个数为p,1 #include #defineMAX500 #defineINF1000000000 #definemin(a,b)(a)v]){ //先出现过的为父节点 Solve_1A(p->v); sum[in]+=sum[p->v]; tot++
woshi250hua
·
2012-06-05 00:00
struct
tree
测试
null
Poj 3260 The Fewest Coins (
DP_
背包)
题目链接:http://poj.org/problem?id=3260题目大意:农民John去购物,市面流行的硬币有n种,每种面值mon[i],John有num[i]个,现在他要到煤老板的店里去买m元的东西,大家都知道煤老板不差钱,每种硬币都有无数个,煤老板找钱的话都可以找最少数量的硬币给John,现在John想要自己出的硬币数和老板找的硬币数最小,如果找不到符合情况的解,输出-1.解题思路:Us
woshi250hua
·
2012-06-01 17:00
算法
测试
Poj 2392 Space Elevator (
DP_
背包)
题目链接:http://poj.org/problem?id=2392题目大意:给定n种积木,每种积木都有一个高度hi,一个数量numi,还有一个限制条件,这个积木所在的位置不能高于maxhi,问能叠起的最大高度。解题思路:一看到题目觉得水题,之前做的背包容量都是固定的,这题容量是根据每个物品的maxhi而定,枚举容量的时候改动下就可以。于是乎开始敲代码,几分钟就敲完运行下竟然样例都不出。后来发现
woshi250hua
·
2012-06-01 15:00
struct
测试
Uva 624 CD (
DP_
背包)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=565题目大意:很标准的01背包,但要输出路径。解题思路:由于要输出路径,不能再用滚动数组,要用二维数组,至少我没想到怎么用滚动数组实现。在转移的时候记录下path[i][j],如果选择,那么它为1,
woshi250hua
·
2012-06-01 00:00
测试
Path
Poj 3211 Washing Clothes (
DP_
背包)
题目链接:http://poj.org/problem?id=3211题目大意:出题者无比嚣张地show幸福。他们夫妻两洗衣服,衣服有m种颜色,每种颜色又有若干件,每件衣服洗完需要特定的时间,要求每种颜色放在一起洗,洗完才能洗其他衣服。最后问洗完需要的最少时间。解题思路:由于每种颜色必须分开洗,那我们可以把同一种颜色的分到一个组内,这样分开计算时间再累加起来。那么每组花费的最少时间怎么算呢?如果总
woshi250hua
·
2012-06-01 00:00
生活
String
测试
Poj 3624 Charm Bracelet (
DP_
背包)
题目链接:http://poj.org/problem?id=3624题目大意:给定n个物品,每个物品有重量和价值,问在重量和不超过m的时候能组成的最大价值是多少?解题思路:这不是赤裸裸的01背包问题吗?虽然数据看起来很大,但都是纸老虎,其实数据很水的。状态转移方程:dp[j]=max(dp[j],dp[j-cost[i]]+val[i])。复杂度O(V*N)测试数据:46142631227代码:
woshi250hua
·
2012-05-31 09:00
测试
Poj 1276 Cash Machine (
DP_
背包)
题目链接:http://poj.org/problem?id=1276题目大意:一台免费的现金输出机器,先输入一个金额sum,里面有n种货币,面值为val[i],数量为num[i],问最多输出多少现金?(当然输出越多越好,免费的!)解题思路:由于sum为10万,num[i]小于1000,怕用暴力地超时,所以用了多重背包来解:sum是背包容量,n种货币就是n个物品,然后经过二进制处理吧每种物品转化为
woshi250hua
·
2012-05-31 09:00
测试
Poj 1837 Balance (
DP_
背包)
题目链接:http://poj.org/problem?id=1837题目大意:天平平衡问题,给定m个可以放置砝码的位置,左边为负数,右边为正数,然后给定n个砝码,重量从1..25不等,位置和重量都不会出现相同的值。最后问让天平平衡的放置方法数。解题思路:将砝码的重量乘以各个位置得到一个n*m的矩阵,表示第i个砝码在第j个位置的权值,算出权值后每一行算一组,因为只可能防放置在一个地方,那这样问题就
woshi250hua
·
2012-05-31 00:00
测试
Poj 2063 Investment (
DP_
背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1059题目大意:给定一个初始资金m,然后给定n种投资方案,每种投资方案中有投资额costi和利息vali,每年的投资就可以拿到全部利息,然后累加起来继续投资利滚利。问经过k年后最多拥有多少资金?解题思路:这题我用了两种写法来解,一种是完全背包,一种是多重背包,前一种其实十分脑残,复杂度又高又不好写,但是
woshi250hua
·
2012-05-30 19:00
测试
Hdu 3496 Watch The Movie (
DP_
背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3496题目大意:题目给定n部电影,每部电影有时长和量化的意义,要求看m部电影,并且市场控制在l以内,转化为背包问题,让我们在n件物品中找正好m件物品塞进容量为l的包中,求最大的价值。解题思路:这题写得不好,首先是看错题目了,把正好m件物品看成最多m件物品,Wa了好几次。然后用了三维数组来实现,效率很低,
woshi250hua
·
2012-05-30 13:00
Hdu 2639 Bone Collector II (
DP_
背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2639题目大意:要求找出第k大的价值,相同的价值只能算一种,如17,14,14,13,,那么13为第3大。解题思路:01背包的变种第k大01背包解决方法是从01背包的解法中改进而来。每次转移状态时,选择当前容量下的前k个价值,再找前面状态转移过来的前k个价值,然后合并,找出不相等的前k个价值,如果不多于
woshi250hua
·
2012-05-29 19:00
测试
Hdu 3810 Magina (
DP_
背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3810题目大意:题目源自Dota,前面一堆介绍敌法师,最后一段才开始说有n堆野兽,每堆野兽屠杀完完需要花费ti时间,可以增加金钱gi,敌法师有瞬移技能,可以从某堆野兽移到另一堆野兽,题目有给定从哪堆可以移到哪堆。最后问在满足打的金钱多余m的情况下的最少时间。解题思路:2011年武汉邀请赛网络赛的金牌题,
woshi250hua
·
2012-05-28 15:00
算法
网络
struct
测试
Hdu 3535 AreYouBusy (
DP_
背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3535题目大意:xiaoA想尽量多花时间做ACM,但老板要求他在t时间内做完n堆工作,每个工作耗时cost[i][j],幸福感val[i][j],每个工作有num[i]个工作,每堆工作都有一个性质,0表示至少要做里面的1个工作,1表示最多做里面的1个工作,2表示随意,做或不做都行。最后问在符合老板要求的
woshi250hua
·
2012-05-28 10:00
工作
测试
(
DP_
背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3033题目大意:xx去买鞋,有k种牌子,然后给出n双鞋,每双鞋有它属于的牌子、价格、收藏价值。xx认为他不差钱,要求每种鞋子买一双。但实际上他只有m毛钱,问能否买到符合xx要求的鞋,能找到的话输出最大的收藏价值总和。解题思路:分组背包的变形,每种牌子要求至少选一个,这与分组的最多选一个不一样,但背包的思
woshi250hua
·
2012-05-27 20:00
c
struct
测试
Hdu 1712 ACboy needs your help (
DP_
背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1712题目大意:给定n门课,再用m天复习这n门课,然后给定一个n*m的矩阵A,A[i][j]表示用j天复习第i门课获得得收益。问用m天复习不同的课获得的最大收益。解题思路:本题本身没什么难度,但是数据给的很有迷惑性,一开始我认为1门课可以复习两次,然后就把n*m个收益当成n*m件物品进行01背包处理,提
woshi250hua
·
2012-05-27 20:00
测试
Hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (
DP_
背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2191题目大意:要求用特定的钱买最大重量的粮食,有n种粮食,每种粮食有重量、价格、数量,最后的钱可以剩余。解题思路:又是一题多重背包被当成了01背包,做完对出题者心怀感恩啊,数据出得这么水。状态转移方程:dp[j]=min(dp[j-k*w[i]]+k*p[i])(dp[j]为容量为j时的最小价值,k
woshi250hua
·
2012-05-27 19:00
Hdu 2546 饭卡 (
DP_
背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2546题目大意:电子科大的食堂刷卡问题,如果卡上余额大等于5,那就可以随便打菜,即使打了鲍鱼等价格比余额多得多的菜。现在给出n个菜的单价,每个菜买一次,问最后卡上剩的余额最少为多少?解题思路:本题可套用01背包的思想,值是价值变为可达不可达。用dp[j]表示余额为j是否可达,可达为1,否则为0.状态转移
woshi250hua
·
2012-05-27 19:00
测试
Hdu 1114 Piggy-Bank (
DP_
背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114题目大意:给定一个储蓄罐可容纳的重量和n个价值为p重量为w的硬币,问在填满储蓄罐的情况最小的价值为多少?如果没办法填满输出Thisisimpossible.解题思路:因为题目的数据范围很小,时间又给很多,可以直接暴力,枚举每次选的数量后相当于01背包。状态转移方程:dp[j]=min(dp[j-k
woshi250hua
·
2012-05-27 16:00
pig
测试
Hdu 1059 Dividing (
DP_
背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1059题目大意:给定6堆硬币,每堆硬币的价值分别为1,2,3,4,5,6,现在给定每堆的硬币数量,问能否把这些硬币按价值平分?解题思路:简单的多重背包,把每堆硬币按二进制处理成若干件物品,每堆的cost分别为2^0,2^1..2^(k-1),num-2^k+1,这样任意数量的硬币都可以用若干件物品组合得
woshi250hua
·
2012-05-27 16:00
优化
测试
Hdu 1494 跑跑卡丁车 (
DP_
背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1494题目大意:根据跑跑卡丁车改造而来的动态规划题目。跑道中每圈都分n个赛道,有L圈,跑完一个赛道能量加%20,跑完5个赛道能量满送一个加速卡,最多2个加速卡,如果加速卡为2个,能量为%100,又从0开始,不送加速卡。题目给定n个数ai和bi,ai为每个赛道正常耗时,bi为加速时的耗时。问最少需要多少时
woshi250hua
·
2012-05-27 14:00
Uva 348 Optimal Array Multiplication Sequence (
DP_
矩阵链乘)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&page=show_problem&problem=284题目大意:标准的矩阵链乘问题,给定n个矩阵,ai行,bi列,两个矩阵相乘(bi==aj)计算次数为ai*bi*bj(ai*aj*bj)。现在要计算的是所有矩阵相乘的最小
woshi250hua
·
2012-05-27 01:00
测试
BI
Path
Uva 562 Dividing coins (
DP_
背包)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&page=show_problem&problem=503题目大意:给定n个硬币,要求将这些硬币平分以使两个人获得的钱尽量多,求两个人分到的钱最小差值。解题思路:其实和Uva147,357差不多,描述变不同,但思想是相同。这题
woshi250hua
·
2012-05-26 23:00
测试
百度
Uva 357 Let Me Count The Ways (
DP_
简单)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&page=show_problem&problem=293题目大意:给定一个小数n,问5个数1,5.10.25.,50组合,相加之和为n的组合个数,和顺序无关。解题思路:分11次转移,转移方程为:dp[i+num[k]]+=d
woshi250hua
·
2012-05-26 23:00
测试
Uva 147 Dollars (
DP_
简单)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&page=show_problem&problem=83题目大意:给定一个小数n,问11个数0.05,0.10,0.20.0.,50,1,2,5,10,20,50,100组合,相加之和为n的组合个数,和顺序无关。解题思路:分1
woshi250hua
·
2012-05-25 21:00
c
优化
测试
Uva 10066 The Twin Towers (
DP_
最长公共子序列)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&page=show_problem&problem=1007题目大意:给定组成两个塔的n个砖头高度以及m个砖头高度,求高度一样并且最长的子序列。解题思路:写到不爱写了,又是经典的最长公共子序列模型。状态转移方程见前面的统一模型
woshi250hua
·
2012-05-25 19:00
测试
Uva 10131Is Bigger Smarter (
DP_
最长递增子序列)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=114&problem=1072题目大意:给定n个人的体重和IQ,要找一个序列,满足除第一个人外每个人的体重都比前一个轻,IQ比前一个高,并输出最长的序列。解题思路:先对体重或IQ进行排序然后求最长
woshi250hua
·
2012-05-25 19:00
struct
测试
Path
Uva 116 Unidirectional TSP (
DP_
记忆化搜索)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&page=show_problem&problem=52题目大意:给定一个n*m的矩阵,问从第一列走到最后一列经过的最小路径长度,方向有三个:右上,右,右下,第一行和最后一行是连通。在输出最小路径的同时输出经过哪些行,按字典序
woshi250hua
·
2012-05-25 12:00
测试
Path
Uva10003 Cutting Sticks (
DP_
区间合并)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&page=show_problem&problem=944题目大意:给定一根长为l的木头,要求在木头的n个位置锯断它,每次锯断一段木头,就把这段木头的长度累加起来输出。解题思路:如果不转换模型,这题很难想。顺着每次吧长度为li
woshi250hua
·
2012-05-24 14:00
测试
Uva 674 Coin Change (
DP_
简单)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&page=show_problem&problem=615题目大意:给定一个数n,问5个数1、5、10、25、50相加之和为n的组合个数,1,5,5和5,5,1算一种..解题思路:分5次转移,转移方程为:dp[i+num[k]
woshi250hua
·
2012-05-24 12:00
测试
Uva 10405 Longest Common Subsequence (
DP_
最长递增子序列)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1346题目大意:赤裸裸的最长递增子序列。解题思路:状态转移方程:if(arr[i]==brr[i])dp[i][j]=max(dp[i][j],dp[i-1][j-1] +1);
woshi250hua
·
2012-05-24 11:00
c
测试
null
Uva 111 History Grading (
DP_
最长公共子序列)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&page=show_problem&problem=47题目大意:给定每个时间对应的历史事件,时间是递增的,然后再给若干学生对这些事件的对应时间猜测,问最后符合时间顺序的最多历史事件是几个?解题思路:不能直接对输入进行操作,输
woshi250hua
·
2012-05-24 01:00
测试
Uva 103 Stacking Boxes (
DP_
最长递增子序列)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&page=show_problem&problem=39题目大意:给定n个m维箱子,每个箱子有个值,箱子各维数字可以交换。如果某个箱子的每一维都比另外i一个箱子小,那另一个箱子就可以装下这个箱子,问哪哥箱子装的箱子最多,装几个
woshi250hua
·
2012-05-24 01:00
struct
测试
Path
hdu 1244 Max Sum Plus Plus Plus(
DP_
简单)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1244题目大意:给定一个由n个正整数组成的整数序列a1a2a3...an,求按先后次序在其中取m段长度分别为l1、l2、l3...lm的不交叠的连续整数的和的最大值。解题思路:状态转移方程:dp[i][j]=max(dp[i][j-1],dp[i-1][j-len[i]]+sum[j]-sum[j-le
woshi250hua
·
2012-04-24 21:00
poj 2373 Dividing the Path (
DP_
单调队列优化)
题目链接:http://poj.org/problem?id=2373题目大意:给定一个长度L,等分为L段,有n头牛,每头牛有一个活动区域,比如3,6,又有喷泉,喷的是圆形,半径在A,B之间,要求在长度为L的区间内安放最少的喷泉,使得每个位置都能被喷到,有两个要求:1、牛活动地区域内必须只由一个喷泉喷到,如果活动区域是(3,6),A=B=1,则最大半径为1,如果放在3,则只能喷到(3,5),如果放
woshi250hua
·
2012-04-23 16:00
poj 1631 Bridging signals (
DP_
最长递增子序列nlogn)
题目链接:http://poj.org/problem?id=1631题目大意:给定1个序列,不会重复,x出现在y位置,即代表x与y可以连线。最后要从这个序列中尽量多地选择连线并保证连线不交叉。解题思路:其实这题就是两个序列连线,求连线不交的最多连线数。本题一个序列已经固定,那只要保证另一列被选择的数是递增的就不会相交了,不理解的话画几个模拟下就懂了。那问题就转化为最长递增子序列了。一般的解法时间
woshi250hua
·
2012-04-21 01:00
测试
关于最长递增子序列问题的求解(LIS)
一、转化为最长公共子序列(LCS)求解二、
普通dp
三、LIS的O(nlogn)算法 问题描述:设L=是n个不同的实数的序列,L的递增子序列是这样一个子序列Lin=,其中k1是对序列L=按递增排好序的序列
tclh123
·
2011-04-05 02:00
poj 1191
普通dp
poj1191开始想的时候没有思路,主要是想有没有什么除了枚举的方法,结果觉得除了暴力好像其他的都特别困难,后来突然想到暴力还是可以的,其实这也是一种dp,就是按照横边,和纵边来枚举,不过有一点没有想到的就是dp是三维的要记录在剩下矩形里面可以切k刀的的最小方差是多少。自己没有想到dp那个k刀的状态是不一样的。这里错了好久。自认为表示剩下矩形可以构成的最小方差值就可以了。
mindmb
·
2010-12-19 13:00
上一页
1
2
3
4
5
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他