DP
文章平均质量分 77
围巾的ACM
啊啊什么时候也能成为一个大牛啊
展开
-
POJ 3624 背包水题
POJ 362401背包水题。DescriptionBessie has gone to the mall’s jewelry store and spies a charm bracelet. Of course, she’d like to fill it with the best charms possible from the N (1 ≤ N ≤ 3,402) available ch原创 2015-11-21 21:40:27 · 603 阅读 · 0 评论 -
HDU3466 01背包技巧题
HDU 3466 背包题目的意思是物品给定三个值p,q,v,p代表花费,v是价值,q是当前的钱不低于这个数才能买那个物品。 如果没有q的限制的话就完全是一道背包水题,有了q之后就变得很有趣了。 之前思考了很久,有了一点眉目,又在网上搜了很多题解看,很重要的一点,动态规划无后效性,某阶段的状态一旦确定,则此后过程的演变不再受此前各种状态及决策的影响,简单的说,就是“未来与过去无关”,当前的状态原创 2015-11-22 12:27:58 · 423 阅读 · 0 评论 -
POJ3666
Making the GradeTime Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64uDescriptionA straight dirt road connects two fields on FJ’s farm, but it changes elevation more than FJ would原创 2015-12-08 18:37:29 · 614 阅读 · 0 评论 -
最大子矩阵 DP
最大子矩阵Time Limit:10000MS Memory Limit:165888KB 64bit IO Format:%lld & %lluHYSBZ 1084Description这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大。注意:选出的k个子矩阵不能相互重叠。Input第一行为n,m,k(1≤n≤100,1≤m≤2,1≤k≤10),接下来n原创 2015-12-09 20:38:22 · 807 阅读 · 0 评论 -
HDU 2546 01背包
HDU2546其实这题一点都不难,一开始想歪了,怎么歪就不说了,其实只需要一开始就扣除掉那五块再01背包DP即可。Description电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额。如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)。所以大家都希望尽量使卡上的余额最少。 某天,食堂中有n种菜出售,每种原创 2015-11-21 21:55:00 · 415 阅读 · 0 评论 -
UVA624
UVA 624 01背包路径记录将价值和体积等同的01背包路径记录,开一个visit[i][j]来记录路径,因为题目要按输入的顺序输出,比如 9 8 4 2 输出 8 2而不是2 8,所以在一开始的循环中i是逆序从n到1,自己动手写一下路径的表或者用断点看看就应该会明白了DescriptionYou have a long drive by car ahead. You have a tape r原创 2015-11-22 10:25:07 · 873 阅读 · 0 评论 -
HDU2639 01背包的第K最优决策
HDU263901背包的第K最优决策问题,一开始做天真的以为求一次01背包然后输出第K大就好了,果断WA,后来搜了一下题解才明白,要求第K大则多加一维 dp[i][v][k]表示前i个物品放入容量为v的背包中第k的最优解,而我们知道dp[i][v] = max(dp[i-1][v],dp[i-1][v-c[i]]+w[i]),相信聪明的你已经明白,dp[i][v][k]相当于由dp[i-1][v][原创 2015-11-22 10:58:08 · 489 阅读 · 0 评论 -
HDU2126 二维背包
HDU2126对背包还是不太熟练啊…刚开始看背包,于是做到这些题目满脑子都是放入体积为XXX的最大价值为XXX,在这道题上就想了很久,后来再次看了一看背包九讲又多理解了一点,这道题可以用三维数组来表示dp[i][j][k]为前i个物品选j个总价钱为k的方案数,状态转移方程为dp[i][j][k] =dp[i-1][j][k] + dp[i-1][j-1][k-c[i]],再用空间优化见代码,另外注意原创 2015-11-23 11:26:56 · 438 阅读 · 0 评论 -
2015广工新生赛 Problem F: 有钱的wingkou
Problem F: 有钱的wingkouDescription大家都知道,wingkou是个高富帅。有一天,wingkou在家里很无聊,于是他就想了一个游戏来玩。游戏是规则这样的,一开始,他往箱子里放了n部的IPhone 6s,还有m部的IPhone 6s Plus,每一次,他从箱子里拿出两部手机,假设两部手机是同型号的,那么就放入一台IPhone 6s Plus,否则就放入一台IPhone 6s原创 2015-12-10 18:19:27 · 573 阅读 · 0 评论 -
UVA147 完全背包DP(坑爹精度题)
UVA147这是一道类似UVA674的题,不过这次有50分,20分,10分和5分的硬币了,输入的时候有小数,留意到输入的只有两位小数,所以想直接都乘个100然后完全背包DP就完事了,然后输出的时候格式卡了好久…然后还是各种WA,后来搜了一下题解…居然是精度问题..一口血吐在屏幕上,注意用long long 和 int m = (int)(n*100+0.5)这两个点就好了,想知道大牛是怎么知道加个0原创 2015-11-23 22:57:06 · 423 阅读 · 0 评论 -
UVA674 完全背包DP
UVA674完全背包的DP题,有50,25,10,5和1块的硬币,问拼出N元有多少种方案, 状态转移方程 dp[i][j]+=dp[i-1][j-c[i]] 其中dp[i][j]表示前i个硬币可凑成j元的方案数,因为硬币可以重复拿,所以是类似完全背包的DP题,优化一下空间参见代码,搜了一下题解好多人用的记忆化搜索..然而我并不懂…以后再看看这道题DescriptionSuppose there a原创 2015-11-23 21:48:44 · 854 阅读 · 0 评论 -
POJ1787
POJ1787一开始还没看多重背包…以为是完全背包加个限制条件,然后想了好久没想不出,看了下背包九讲..看到多重背包可是也没什么思路…后来搜了一下题解…豁然开朗 dp[j] 表示 j 块钱最多由多少块硬币组成, path[j] 表示 上一次最多有多少块构成的 j 块钱, used[j] 表示 j 块钱时,已经放了多少同种类的硬币。DescriptionCharlie is a driv原创 2015-11-25 22:15:58 · 542 阅读 · 0 评论 -
POJ2063
POJ2063这题只要注意到题目上的The value of a bond is always a multiple of 1 000,就是完全背包水题了….DescriptionJohn never knew he had a grand-uncle, until he received the notary’s letter. He learned that his late grand-unc原创 2015-11-25 22:10:40 · 514 阅读 · 0 评论 -
POJ2533 LIS模板题
POJ2533最长上升子序列模板题DescriptionA numeric sequence of ai is ordered if a1 < a2 < … < aN. Let the subsequence of the given numeric sequence ( a1, a2, …, aN) be any sequence ( ai1, ai2, …, aiK), where 1 <= i原创 2015-11-26 19:03:17 · 664 阅读 · 0 评论 -
POJ1837 DP
POJ1837 DP题题目一开始看了N久…意思大概是有一个天平,左边臂长是-15到0,右边臂长是0到15,给你c个挂钩,g个砝码,每一个砝码重量都在1到25,问将所有砝码挂到天平上并使之平衡的方案有多少个。 要使之平衡由物理知识可知力矩=0,左边重量 X 左边臂长+右边重量 X右边臂长=0,故状态一共有25*15*20=7500,设dp[i][j]为将前i个砝码挂上去平衡点为j的方案,同时注意因原创 2015-11-26 20:18:09 · 312 阅读 · 0 评论 -
POJ1276 多重背包DP 生命不息优化不止
POJ1276 多重背包DP题这道题弄了一个早上…一看题目是多重背包题直接敲了一个三重for循环,无限TLE,下面附上好几种解法。DescriptionA Bank plans to install a machine for cash withdrawal. The machine is able to deliver appropriate @ bills for a requested cas原创 2015-11-27 11:36:30 · 492 阅读 · 0 评论 -
POJ1260 DP
题意就是某个奇葩的国家买珍珠的时候要附加多买10个珍珠,比如我买100个1价值的,和100个2价值的,如果分开买就是(100+10)*1+(100+10)*2=330,可是呢也可以买200个2价值的,高价值的可以替代低价值的,这样的话是(200+10)*2=420,这个例子可能体现不出来高价值替换低价值反而会更便宜,看第二个样例就知道了。 看一下题目说明输入的都是从低价值到高价值的,那么设dp[i原创 2015-11-27 17:21:14 · 294 阅读 · 0 评论 -
POJ1836 双向LIS
一开始没怎么看题意,以为是要问去掉几个人能使队列由矮到高排好,看了看样例好像还真是,就直接敲了一发LIS上去,结果WA了..然后再仔细看看题目…是要求每一个士兵都能看到队列中最高和最矮那个士兵,就是队列要呈一个三角形,中间高,两边矮,所以从头和从尾开始都来一遍LIS,然后处理下就好了DescriptionIn the army, a platoon is composed by n soldiers原创 2015-11-27 17:05:44 · 713 阅读 · 0 评论 -
2015‘12杭电校赛1006 01 Matrix(二维DP)
题解我们用d[i][j]表示右下角为(i,j)的最大的全1正方形的size是多少。那么直接有一个DP转移if(s[i][j]==’1’)d[i][j]=min(d[i-1][j],min(d[i][j-1],d[i-1][j-1]))+1;else d[i][j]=0;然后一样计数++f[d[i][j]]最后扫描一遍就可以啦。代码#include<cstdio>#include<cstring>原创 2016-01-06 22:18:09 · 356 阅读 · 0 评论 -
POJ1159 DPorLCS妙用
POJ1159 DP or LCS妙用一开始用的DP做,dp[i][j]表示从i到j这个区间成为回文需要增加多少个字符,如果s[i]==s[j],那么dp[i][j]=dp[i+1][j-1],否则dp[i][j]=min(dp[i+1][j],dp[i][j-1])+1,状态转移方程应该不难理解,不过注意的是开了5000*5000的int数组会MLE,用了short类型飘过… 做完搜了搜题解,居原创 2015-11-28 21:57:00 · 323 阅读 · 0 评论 -
POJ1080 DP
POJ1080题意是给你两串基因,中间可以插入任意个-,使两个基因串长度相同,每一个配对都有自己的权值,但-不能和-配对 问怎么插入-可以使权值最大,套用LCS的思想很容易就可以分析出来,dp[i][j]=max(dp[i-1][j-1]+score[i][j],dp[i-1][j]+score[i][-],dp[i][j-1]+score[-][j]),同时注意处理边界条件即可Descriptio原创 2015-11-28 17:21:09 · 303 阅读 · 0 评论 -
HDU1257 最少拦截系统
HDU1257 最少拦截系统一开始以为只用比较下一个和前一个的大小就好了,结果WA到死…后来想了一想用了类似LIS的思想求非递减的个数就好了Description某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因原创 2015-11-29 10:46:55 · 460 阅读 · 0 评论 -
POJ3176 简单DP....
POJ3176应该是目前为止做过最简单的DP题了,题意就是一个类似三角形的格子,每一个格子有自己的权值,问从顶点出发走到底最大的权值有多少。设dp[i][j]为走到行i,列为j获得的最大值,自底向上走,则有转移方程dp[i][j] = max(dp[i]]j]+dp[i+1][j],dp[i][j]+dp[i+1][j+1]),最后dp[1][1]即为结果(从1开始记录)DescriptionThe原创 2015-11-27 21:24:48 · 382 阅读 · 0 评论 -
POJ3267 DP
POJ3267 字符串匹配DP题刚开始练DP题,有点不熟悉,也想了挺久了,题意是给一串字符串,每个奶牛有自己的字典,问在字符串里面最少删掉多少个字母能使字符串里面的单词都在奶牛的字典范围,如样例给的browndcodw,删掉中间的d和倒数第二个d,变成browncow,都是在奶牛的字典里面可以找到,所以输出2. 设dp[i]为到了第i个字符所需要删除的最少字符数,那么在dp[i]处就有两种方案,原创 2015-11-28 11:57:56 · 269 阅读 · 0 评论 -
POJ1458 Common Subsequence LCS模板题
POJ1458 Common Subsequence LCS模板题不说什么了直接上模板DescriptionA subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = < x1, x2, …, xm > another原创 2015-11-29 11:01:06 · 446 阅读 · 0 评论 -
杭电 2015’11校赛 1005ACM组队安排
ACM组队安排Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 615 Accepted Submission(s): 257Problem DescriptionACM亚洲区比赛结束,意味着开始备战明年的浙江省大学生程序设计竞赛了!原创 2015-11-29 23:19:33 · 684 阅读 · 0 评论 -
HDU1087 Super Jumping! Jumping! Jumping!
DescriptionNowadays, a kind of chess game called “Super Jumping! Jumping! Jumping!” is very popular in HDU. Maybe you are a good boy, and know little about this game, so I introduce it to you now. The原创 2015-11-30 09:22:16 · 311 阅读 · 0 评论 -
杭电2015’11校赛 1001搬砖
1001 搬砖Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Problem Description小明现在是人见人爱,花见花开的高富帅,整天沉浸在美女环绕的笙歌妙舞当中。但是人们有所不知,春风得意的小明也曾有着一段艰苦的奋斗史。那时的小明还没剪去长发,没有信用卡没有她,没有24小时原创 2015-11-29 23:10:16 · 653 阅读 · 0 评论 -
HDU1160 FatMouse's Speed LIS变种+路径
J - FatMouse’s SpeedTime Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uDescriptionFatMouse believes that the fatter a mouse is, the faster it runs. To disprove this, you want t原创 2015-11-30 23:20:02 · 336 阅读 · 0 评论 -
HDU1114 Piggy-Bank完全背包变形
HDU1114 Piggy-BankDescriptionBefore ACM can do anything, a budget must be prepared and the necessary financial support obtained. The main income for this action comes from Irreversibly Bound Money (IBM原创 2015-11-30 21:06:02 · 526 阅读 · 0 评论 -
HDU1176 免费馅饼 数塔DP
Description都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由于小径两侧都不能站人,所以他只能在小径上接。由于gameboy平时老呆在房间里玩游戏,虽然在游戏中是个身手敏捷的高手,但在现原创 2015-11-30 20:55:19 · 461 阅读 · 0 评论 -
HDU1260 Tickets DP
TicketsTime Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uDescriptionJesus, what a great movie! Thousands of people are rushing to the cinema. However, this is really a tuff ti原创 2015-12-01 14:39:44 · 553 阅读 · 0 评论 -
POJ3616 Milking Time DP
Milking TimeTime Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64uDescriptionBessie is such a hard-working cow. In fact, she is so focused on maximizing her productivity that she原创 2015-12-02 15:32:55 · 658 阅读 · 0 评论 -
POJ3186 Treats for the Cows DP
Treats for the CowsTime Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64uDescriptionFJ has purchased N (1 <= N <= 2000) yummy treats for the cows who get money for giving vast amo原创 2015-12-02 20:00:47 · 404 阅读 · 0 评论 -
uva1471 - Defense Lines (最长上升子序列变形)
题意:在序列中去掉某个连续的子序列使得序列的最长上升子序列最长题解:设l[i]为以i为结束的最长上升子序列的长度,r[i]为以i为开始的最长上升子序列的长度,那么dp[i]=r[j]+l[i],由于和普通的LIS类似,所以可以利用LIS的优化方法把该题的时间复杂的优化到O(nlogn)。方法仍是利用一个数组d[i]记录长度为 i 的连续递增序列的最后一个元素的最小值,显然该序列是单调递增的原创 2016-01-22 11:36:27 · 599 阅读 · 0 评论 -
2015浙江理工校赛 E Power Eggs (DP)
题解一开始没想到DP题,只是想起google面试有这个,上网搜了一下dp[i][j]为i个鸡蛋j个楼层测试的数目,想直接套到这个题目上,后来看了一下数据..楼层有上亿个…怎么开数组,当时就蒙了,还想打表找规律…其实灵活一点的话可以看到题目说了测试的次数如果大于32次就可以输出Impossible了,就是说不用算了,既然楼层不能在数组的下标中表示出来,那为什么不换一下,dp[i][j]表示i个鸡蛋测试原创 2015-12-21 20:29:13 · 667 阅读 · 0 评论 -
HDU1078 FatMouse and Cheese记忆化搜索
FatMouse and CheeseTime Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uDescriptionFatMouse has stored some cheese in a city. The city can be considered as a square grid of dimen原创 2015-12-02 20:39:09 · 401 阅读 · 0 评论 -
HDU2859 Phalanx DP
PhalanxTime Limit:5000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uDescriptionToday is army day, but the servicemen are busy with the phalanx for the celebration of the 60th anniversary原创 2015-12-02 22:12:17 · 420 阅读 · 0 评论 -
HDU1069 Monkey and Banana
Monkey and BananaTime Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uDescriptionA group of researchers are designing an experiment to test the IQ of a monkey. They will hang a b原创 2015-12-06 09:42:46 · 627 阅读 · 0 评论 -
POJ1661 Help Jimmy DP (待解决)
Help JimmyTime Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64uDescription“Help Jimmy” 是在下图所示的场景上完成的游戏。 场景中包括多个长度和高度各不相同的平台。地面是最低的平台,高度为零,长度无限。 Jimmy老鼠在时刻0从高于所有平台的某处开始下落,它的下落速度始终原创 2015-12-08 14:11:55 · 292 阅读 · 0 评论