![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
古古天
如花美眷也敌不过似水流年 心若磐石也敌不过过眼云烟
展开
-
Hard problem
1022: Hard problem Time Limit: 1 Sec Memory Limit: 128 MB Submit: 43 Solved: 12 Description The 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 · 949 阅读 · 0 评论 -
HDOJ2602 Bone Collector
Bone Collector Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 66 Accepted Submission(s) : 23 Problem Description Many years ago ,原创 2013-07-20 23:59:25 · 1290 阅读 · 0 评论 -
HDOJ2546 饭卡
饭卡 Time Limit : 5000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 37 Accepted Submission(s) : 14 Problem Description 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断原创 2013-07-21 00:04:42 · 1921 阅读 · 0 评论 -
HDOJ1171 Big Event in HDU
Big Event in HDU Time Limit : 10000/5000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 25 Accepted Submission(s) : 8 Problem Description Nowadays, we al原创 2013-07-21 00:55:46 · 1720 阅读 · 0 评论 -
poj1837Balance
题意:一个杠杆,中心有支点,两边有挂钩,挂钩位置由输入给定。有一些砝码,砝码重量由输入给定。一个挂钩下可以挂多个砝码,也可以什么都不挂,但每个砝码必须都用。问有多少种组合方式,可以使杠杆平衡。 分析:像这种组合方式很多,但状态空间却不大的,一般都可以交给DP。 dp[i][j]表示放置第i个物品后,总质量为j的可能组合的数量。 状态转移方程 dp[i+1][j]=sum{dp[i][原创 2013-09-02 19:42:55 · 987 阅读 · 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 #include using原创 2013-09-19 16:20:58 · 1373 阅读 · 0 评论 -
HDOJ1864 最大报销额
最大报销额 Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 14 Accepted Submission(s) : 2 Problem Description 现有一笔经费可以报销一定额度的发票。允许报销的发票类型原创 2013-07-21 01:25:06 · 1488 阅读 · 0 评论 -
HDOJ3496 Watch The Movie
分析:简单的dp问题,与0、1背包很相似。 代码: #include #include #include using 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 · 915 阅读 · 0 评论 -
HDOJ2159 FATE
分析:看了很久,是一个二维完全背包问题,dp值来保存获得的经验值,循环的是忍耐度和杀怪的数量,每次来比较是否获得足够的经验值,如果有,则退出循环,得到最大值。 代码: #include #include #include using namespace std; struct Num{ int w,v; }num[105]; int dp[105][105]; int main()原创 2013-09-21 22:42:36 · 996 阅读 · 0 评论