DP
Apink233
这个作者很懒,什么都没留下…
展开
-
杭电1203--I NEED A OFFER! 01背包
Speakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要准备的材料,于是,便需要去申请学校了。要申请国外的任何大学,你都要交纳一定的申请费用,这可是很惊人的。Speakless没有多少钱,总共只攒了n万美元。他将在m个学校中选择若干的(当然要在他的经济承受范围内)。每个学校都有不同的申请费用a(万美元),并且Speakless估计了他得到这个学校offer的可能性b。不同学校之...原创 2018-08-09 21:09:30 · 291 阅读 · 0 评论 -
Anniversary party (hdu1520) (树状数组)
题意:有n个人,他们之间有上司和下属关系,每个人有自己的价值,现在要选一部分人使其满足上司和下属不同时被选到的情况下价值总和最大。更直接的讲就是,在一棵树中选价值总和尽量多的节点但是不能同时选到一个节点和它的直接父节点。题解:因为这里要求选的点的个数是不限定的,只需要满足价值总和尽量大。而对于每个点来说,只有选和不选两种状态,这种情况其实和01背包有一些类似,所以我们可以用背包的思想来做。...转载 2018-08-10 20:40:58 · 133 阅读 · 0 评论 -
hdu 1284 钱币兑换问题(动态规划)
完全背包:#include<stdio.h>#include<string.h>int dp[4][40000];int main(void){ int i,j,n; memset(dp,0,sizeof(dp)); dp[0][0]=1; for(i=1; i<=3; i++) { for(j...转载 2018-08-07 20:31:30 · 230 阅读 · 0 评论 -
hdu 1087 Super Jumping! Jumping! Jumping!(动态规划DP)
题目大意:求解最大递增子序列和,这里要特别注意一点:这个题目不要求是连续的最大递增子序列。但是一定要注意是递增的!!题目思路:dp数组表示是包含当前这个数的最大递增子序列和。dp[i]表示的是前i个并且包含第i个的最大递增子序列和!给个数据:3 1 4 显然dp[1]=3,dp[2]=1表示两个数的最大值。因为分两种情况讨论,如果第二个数大于第一个数,就加上,即dp[2]=dp[1]+num[...原创 2018-08-12 11:03:58 · 186 阅读 · 0 评论