蚂蚁的难题(八)
来源:互联网 发布:c 五子棋源码 编辑:程序博客网 时间:2024/05/04 19:39
蚂蚁的难题(八)
时间限制:2000 ms | 内存限制:65535 KB
难度:5
- 描述
蚂蚁是一个古玩爱好者,他收藏了很多瓶瓶罐罐。
有一天,他要将他的宝贝们一字排开, 摆放到一个长度为L的展台上。
已知他有n件宝贝, 每件宝贝的宽为w,由于这些瓶瓶罐罐的形状特殊,所以在摆放时需要至少X的宽度来摆放他们,(仅摆放时需要X的宽度, 摆放后宽度仍为w)现在已知了每件宝贝的宽度wi,和摆放它们所需的宽度Xi。请你帮蚂蚁计算一下,在这个展台上,他最多能摆多宽的宝贝。
- 输入
- 有多组测试数据。
对于每一组测试数据:
第一行: n L 分别代表有n件宝贝,展台长度为L;(n<1000, L<10000)
接下来有n行, 每行有两个整数 wi xi 分别代表第i件宝贝的宽度和摆放时需要的宽度。(0<wi <= xi < 10000). - 输出
- 输出蚂蚁能够摆出的最大的宽度。
- 样例输入
3 102 33 44 7
- 样例输出
9
#include<stdio.h>#include<iostream>#include<algorithm>#include<string.h>using namespace std;struct node{ int a,b;} we[1010];int dp[10010];bool cmp(node s,node w){ return s.b-s.a>w.b-w.a;//先将放时占用位置较大的先放上}int main(){ int n,l; while(scanf("%d%d",&n,&l)!=-1) { for(int i=0; i<n; i++) { scanf("%d%d",&we[i].a,&we[i].b); } memset(dp,0,sizeof(dp)); sort(we,we+n,cmp); int maxn=0; for(int i=0; i<n; i++) { for(int j=l; j>=we[i].a; j--) { if(l-j>=we[i].b-we[i].a)//判断是否能放 { dp[j]=max(dp[j],dp[j-we[i].a]+we[i].a); maxn=max(maxn,dp[j]); } } } printf("%d\n",maxn); }}
0 0
- 蚂蚁的难题(八)
- nyoj808蚂蚁的难题(八)【dp】
- ayit 蚂蚁的难题
- 蚂蚁的难题(二)
- nyoj蚂蚁的难题
- 蚂蚁的难题
- 蚂蚁的难题(二)
- 蚂蚁的难题(二)
- 蚂蚁的难题(一)
- 蚂蚁的难题(二)
- 蚂蚁的难题(三)
- 蚂蚁的难题(二)
- 蚂蚁的难题(三)
- 蚂蚁的难题(二)
- nyoj745-蚂蚁的难题(二)
- 蚂蚁的难题(二)
- 蚂蚁的难题(三)
- 蚂蚁的难题系列--二
- 工作三年后对自己的告诫-
- 数据结构 最短路径之—迪杰斯特拉算法
- Ubuntu-unable to resolve host
- 002_第一个SpringBoot项目
- Linux信号(Signal)
- 蚂蚁的难题(八)
- Dataguard一主多备配置报错处理
- 3.揭秘angular2学习 ------- 模版
- 1052. 卖个萌 (20)
- 信号处理中的滤波器的阶数和谐波的理解
- 怎么看《就算老公一毛钱股份都没拿到,在我心里,他依然是最牛逼的创业者》文中创业公司 CEO 的行为?
- Opencv2系列学习笔记9(使用Canny算子检测轮廓)
- size_t、ssize_t类型
- java根据正则表达式查出对应字符,并在查到的字符基础上作修改