POJ - 3257 Cow Roller Coaster (背包)
2024-10-01 04:58:28
题目大意:要用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;
}
最新文章
- ZeroMQ接口函数之 :zmq_errno – 返回errno的值给调用此函数的线程
- Pycharm使用问题# 行号设置
- Windows下adb push 总是提示Failed to copy ";XX.apk"; to &#39;system/app&#39;:Read-only file system
- 通过替换frm文件方式修改表结构
- sql Server 的基本函数
- java 5 ReadWriteLock
- MFC窗口风格 WS_style/WS_EX_style(超详细)
- Linux Kernel &#39;perf_event.c&#39;本地权限提升漏洞
- StrutsPrepareAndExecuteFilter(转)
- centos下添加的端口不能访问(防火墙关闭)
- 最新Cocos2d-x3.2开发环境搭建(windows环境下)
- arcgis,mapinfo(mapxtreme),openlayers专业GIS系统开发
- 2.java.util.logging.Logger使用详解
- r.js合并实践
- Hibernate常用API以及使用说明
- SQL基础语句总结
- 使用MVC实现登录功能
- hdu - 6281,2018CCPC湖南全国邀请赛F题,快排
- python爬虫调用搜索引擎及图片爬取实战
- mysql 开启慢查询 如何打开mysql的慢查询日志记录
热门文章
- 自定义django的Template context processors
- day63-webservice 09.jquery调用ajax
- golang互斥锁和读写锁
- IT业常见职位英语缩写全攻略及详解
- JqGrid saveRow方法报404错误
- 第5章分布式系统模式 使用客户端激活对象通过 .NET Remoting 实现 Broker
- SqlServer数据库基本用法
- 读<;<;大数据时代>;>;的一些感想
- background-attachment css3属性
- React 学习笔记:1-react 入门