题目大意:要用N种材料建一条长为L的路,如今给出每种材料的长度w。起始地点x。发费c和耐久度f
问:在预算为B的情况下,建好这条路的最大耐久度是多少

解题思路:背包问题
dp[i][j]表示起始地点为i。发费为j的最大耐久度
可得转移方程
dp[i + w][j + c] = max(dp[i + w][j + c],dp[i][j] + f)

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define maxl 1010
#define maxn 10010
#define INF 0x3f3f3f3f
int L, N, B;
int dp[maxl][maxl];
struct component {int x, w, f, c;
}com[maxn];int cmp(const component a, const component b) {return a.x < b.x;
}void init() {for(int i = 0; i < N; i++)scanf("%d%d%d%d", &com[i].x, &com[i].w, &com[i].f, &com[i].c);sort(com, com + N, cmp);
}void solve() {memset(dp, -1, sizeof(dp));dp[0][0] = 0;for(int i = 0; i < N; i++) {for(int j = 0; j <= B - com[i].c; j++)if(dp[com[i].x][j] != -1) {dp[com[i].x + com[i].w][j + com[i].c] = max(dp[com[i].x + com[i].w][j + com[i].c], dp[com[i].x][j] + com[i].f) ;}}int ans = -1;for(int i = 0; i <= B; i++)if(dp[L][i] != INF)ans = max(ans, dp[L][i]);printf("%d\n", ans);
}int main() {while(scanf("%d%d%d", &L, &N, &B) != EOF ) {init();solve();}return 0;
}

POJ - 3257 Cow Roller Coaster (背包)相关推荐

  1. 【BZOJ】1649: [Usaco2006 Dec]Cow Roller Coaster(dp)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1649 又是题解... 设f[i][j]表示费用i长度j得到的最大乐趣 f[i][end[a]]=ma ...

  2. POJ 3660 Cow Contest [Floyd]

    POJ - 3660 Cow Contest http://poj.org/problem?id=3660 N (1 ≤ N ≤ 100) cows, conveniently numbered 1. ...

  3. poj 1985 Cow Marathon 【树的直径】

    求树的直径 /* POJ:1985 Cow Marathon 2014/10/12/21:18 Yougth*/ #include <cstdio> #include <iostre ...

  4. poj 2063 Investment(01背包变形)

    http://poj.org/gotoproblem?pid=2063 (1)上限 m 一直上升的 n 次01背包问题,比一般的01背包多了一重循环: (2)本题出现了各种错误:1)刚开始,没注意 m ...

  5. POJ 3624 Charm Bracelet 0-1背包

    传送门:http://poj.org/problem?id=3624 题目大意:XXX去珠宝店,她需要N件首饰,能带的首饰总重量不超过M,要求不超过M的情况下,使首饰的魔力值(D)最大. 0-1背包入 ...

  6. poj 1252 Euro Efficiency (01背包变形)

    http://poj.org/gotoproblem?pid=1252 (1)不是单纯的01背包问题,硬币有去有回(即有正有负),这使得用想买你的解法,上限难以确定,所以我开了dp[10000]的数组 ...

  7. poj 3624 Charm Bracelet (01背包)

    题目链接:http://poj.org/problem?id=3624 //典型01背包问题 //状态转移方程dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+d[i]) ...

  8. POJ 3660 Cow Contest 传递闭包+Floyd

    原题链接:http://poj.org/problem?id=3660 Cow Contest Time Limit: 1000MS   Memory Limit: 65536K Total Subm ...

  9. [POJ 3270]Cow Sorting

    Description Farmer John's N (1 ≤ N ≤ 10,000) cows are lined up to be milked in the evening. Each cow ...

最新文章

  1. PyQt主窗体设置停靠窗口(QDockWidget)的叠加顺序
  2. http://www.cnblogs.com/dolphin0520/p/3949310.html
  3. ui和android有联系,Android单位换算与UI适配
  4. DCMTK:工作清单数据库测试程序
  5. Angular应用只执行指定单元测试的小技巧
  6. spring boot 实战
  7. centos mysql无法启动 sock_【零基础学云计算】MYSQL的主从复制、读写分离
  8. 蚂蚁愚人节视频透露的真相:区块链只有科技巨头才玩得起?
  9. 论文笔记7 --(ReID)Video-based Person Re-identification via Self Paced Weighting
  10. Discarding previously cached master state
  11. centos 零碎学习小记 11.
  12. 浅谈数字后端工程师的工作
  13. 管理的常识(2):什么是领导
  14. Hyperf基础使用
  15. HackerRank 题目目录
  16. 数据中心交换机与普通交换机有什么不同?
  17. Caffe Prototxt 特殊层系列:Crop Layer
  18. Django学习日志三:模型层
  19. 【Python学习笔记】简单调用百度API应用
  20. Python利用Face++实现身份证件图片识别

热门文章

  1. Java PushbackReader ready()方法与示例
  2. Java Throwable setStackTrace()方法与示例
  3. Django学习笔记《二》图书管理系统
  4. mysql 学习笔记 多表查询02
  5. Linux socket编程(一) 对套接字操作的封装
  6. 栈空间和堆空间的区别
  7. shell编程题(三)
  8. 1038. 统计同成绩学生(20)
  9. 106. 从中序与后序遍历序列构造二叉树
  10. C库函数与Linux系统函数之间的关系