【HDOJ】1881 毕业bg

01背包。


 1 #include <cstdio>
2 #include <cstring>
3 #include <cstdlib>
4
5 #define MAXN 1005
6
7 typedef struct {
8 int h, l, t;
9 } node_st;
10
11 node_st nodes[35];
12
13 int dp[MAXN];
14
15 int comp(const void *a, const void *b) {
16 node_st *p = (node_st *)a;
17 node_st *q = (node_st *)b;
18 return p->t-q->t;
19 }
20
21 int main() {
22 int n, max;
23 int i, j, tmp;
24
25 while (scanf("%d",&n)!=EOF && (n>=0)) {
26 max = 0;
27 for (i=1; i<=n; ++i) {
28 scanf("%d%d%d", &nodes[i].h,&nodes[i].l,&nodes[i].t);
29 if (nodes[i].t > max) max = nodes[i].t;
30 }
31 qsort(nodes+1, n, sizeof(node_st), comp);
32 memset(dp, 0, sizeof(dp));
33 for (i=1; i<=n; ++i) {
34 for (j=nodes[i].t-nodes[i].l; j>=0; --j) {
35 tmp = dp[j] + nodes[i].h;
36 if (dp[j+nodes[i].l] < tmp)
37 dp[j+nodes[i].l] = tmp;
38 }
39 }
40 n = 0;
41 for (i=1; i<=max; ++i)
42 if (dp[i] > n)
43 n = dp[i];
44 printf("%d\n", n);
45 }
46
47 return 0;
48 }

时间: 2024-08-11 01:36:13

【HDOJ】1881 毕业bg的相关文章

HDOJ 题目1881 毕业bg(DFS)

毕业bg Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 6   Accepted Submission(s) : 3 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 每年毕业的季节都会有大量毕业生发起狂欢,好朋友们相约吃散伙饭,网络上

hdu1881 毕业bg(深搜dfs)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1881 Problem Description 每年毕业的季节都会有大量毕业生发起狂欢,好朋友们相约吃散伙饭,网络上称为"bg".参加不同团体的bg会有不同的感觉,我们可以用一个非负整数为每个bg定义一个"快乐度".现给定一个bg列表,上面列出每个bg的快乐度.持续长度.bg发起人的离校时间,请你安排一系列bg的时间使得自己可以获得最大的快乐度. 例如有4场bg: 第1场

九度OJ—题目1030:毕业bg

题目描述:     每年毕业的季节都会有大量毕业生发起狂欢,好朋友们相约吃散伙饭,网络上称为"bg".参加不同团体的bg会有不同的感觉,我们可以用一个非负整数为每个bg定义一个"快乐度".现给定一个bg列表,上面列出每个bg的快乐度.持续长度.bg发起人的离校时间,请你安排一系列bg的时间使得自己可以获得最大的快乐度. 例如有4场bg: 第1场快乐度为5,持续1小时,发起人必须在1小时后离开: 第2场快乐度为10,持续2小时,发起人必须在3小时后离开: 第3场快乐度

朴素搜索dfs, 简单的剪枝搜索

为做一个项目选择最合适的语言固然重要,但是,掌握一门自己熟练的兵器,也很重要. ===================================================================================================================== 继续总结搜索类的题目,这一类的题目,目前仅分析简单粗暴的dfs搜索,以及简单的剪枝. 参考的题目: http://acm.hdu.edu.cn/showproblem.php?pid=

ACM1881 01背包问题应用

01背包问题动态规划应用 acm1881毕业bg 将必须离开的时间限制看作背包容量,先将他们由小到大排序,然后在排完序的数组中对每个实例都从它的时间限制开始(背包容量)到它的延长时间进行遍历: 1 #include<iostream> 2 #include<algorithm> 3 #include<cstring> 4 using namespace std; 5 struct BG 6 { 7 int h,t,l; 8 friend bool operator<

反思:毕业入职的第一家公司

得到这第一份工作,说来还真有几分传奇.大四下学期一开学,就买好去深圳的火车票,和同学几个踏上了南漂的路.由于是穷学生,所以买了硬卧票,很巧的是在火车上遇到了一个潜江的老乡,反正火车要开一天一夜也怪无聊的,于是在火车过道找了个桌子几个年轻小伙就开始畅谈人生和憧憬未来.这位刚认识的老乡年龄和我们差不多,但社会经验比我们丰富很多,于是就说起他在中专技校里面是如何半夜溜出去上网,毕业如何被分配到工厂做车厂机加工人,说和自己同班出来做机加工人的一个女同学的女同事由于金属镁粉过敏全身都红肿,那个女同学见到这

【HDOJ】4328 Cut the cake

将原问题转化为求完全由1组成的最大子矩阵.挺经典的通过dp将n^3转化为n^2. 1 /* 4328 */ 2 #include <iostream> 3 #include <sstream> 4 #include <string> 5 #include <map> 6 #include <queue> 7 #include <set> 8 #include <stack> 9 #include <vector>

POJ Xiangqi 4001 &amp;&amp; HDOJ 4121 Xiangqi

题目链接(POJ):http://poj.org/problem?id=4001 题目链接(HDOJ):http://acm.hdu.edu.cn/showproblem.php?pid=4121 Xiangqi Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1108   Accepted: 299 Description Xiangqi is one of the most popular two-player boa

毕业半年,工作一年回顾总结

新的一年即将来临,自2013年12月初工作,2014年6月底毕业以来,时光匆匆,已然毕业半年,工作一年了.工作这一年来,自己对程序员这个职业的一些思考,或者说自己对职业路线的思考也发生了许多变化.是时候记录一下,重新思考今后的路该怎么走,不知多年以后又会发生什么样的变化? 公司的领导最好有懂技术的,这样你的能力会得到更好的认可.否则会出现下面几种情况:a.领导压根儿不知道你为公司做了多少贡献,甚至认为你就是打酱油的,换句话说及就是你得不到认可:b.领导不重视公司的技术人员,技术人员受冷遇:c.公