
动态规划
古古天
如花美眷也敌不过似水流年 心若磐石也敌不过过眼云烟
展开
-
Hard problem
1022: Hard problemTime Limit: 1 Sec Memory Limit: 128 MBSubmit: 43 Solved: 12DescriptionThe cat gets N mice from dreamone, and she can choose K mice from them as the order which is liste原创 2013-07-13 11:38:26 · 990 阅读 · 0 评论 -
HDOJ2602 Bone Collector
Bone CollectorTime Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)Total Submission(s) : 66 Accepted Submission(s) : 23Problem DescriptionMany years ago ,原创 2013-07-20 23:59:25 · 1323 阅读 · 0 评论 -
HDOJ2546 饭卡
饭卡Time Limit : 5000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)Total Submission(s) : 37 Accepted Submission(s) : 14Problem Description电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断原创 2013-07-21 00:04:42 · 1957 阅读 · 0 评论 -
HDOJ1171 Big Event in HDU
Big Event in HDUTime Limit : 10000/5000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)Total Submission(s) : 25 Accepted Submission(s) : 8Problem DescriptionNowadays, we al原创 2013-07-21 00:55:46 · 1751 阅读 · 0 评论 -
poj1837Balance
题意:一个杠杆,中心有支点,两边有挂钩,挂钩位置由输入给定。有一些砝码,砝码重量由输入给定。一个挂钩下可以挂多个砝码,也可以什么都不挂,但每个砝码必须都用。问有多少种组合方式,可以使杠杆平衡。分析:像这种组合方式很多,但状态空间却不大的,一般都可以交给DP。dp[i][j]表示放置第i个物品后,总质量为j的可能组合的数量。状态转移方程 dp[i+1][j]=sum{dp[i][原创 2013-09-02 19:42:55 · 1018 阅读 · 0 评论 -
HDOJ1421搬寝室(动态规划)
分析:题目意思应该很清楚,想到首先需把所有的东西按重量排下序,然后再想办法。数据不大但涉及很大量的重复问题,应该想到用动态规划思想。i表示要搬东西的数量,j表示要搬的次数,状态方程:dp[i][j]=min(dp[i-1][j],dp[i-2][j-1]+(num[i-2]-num[i-1])^2代码:#include#include#include#includeusing原创 2013-09-19 16:20:58 · 1417 阅读 · 0 评论 -
HDOJ1864 最大报销额
最大报销额Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)Total Submission(s) : 14 Accepted Submission(s) : 2Problem Description现有一笔经费可以报销一定额度的发票。允许报销的发票类型原创 2013-07-21 01:25:06 · 1525 阅读 · 0 评论 -
HDOJ3496 Watch The Movie
分析:简单的dp问题,与0、1背包很相似。代码:#include#include#includeusing namespace std;struct Num{ int w,v;}num[110];int dp[110][1010];int main(){ int t,N,M,L,i,j,k,cnt; scanf("%d",&t); whi原创 2013-09-21 20:41:39 · 952 阅读 · 0 评论 -
HDOJ2159 FATE
分析:看了很久,是一个二维完全背包问题,dp值来保存获得的经验值,循环的是忍耐度和杀怪的数量,每次来比较是否获得足够的经验值,如果有,则退出循环,得到最大值。代码:#include#include#includeusing namespace std;struct Num{ int w,v;}num[105];int dp[105][105];int main()原创 2013-09-21 22:42:36 · 1030 阅读 · 0 评论