题意

有n件物品,每件物品有一个接受时间,发送时间,重量,承重和价值。每个物品可以不接受,但接受了就必须在发送时间将其发送出去,才能获得其价值。有一个平台,承重为m,每次可以将一件物品放到当前最顶部物品的上方。满足任意时刻任意物品上方物品的重量总和不能超过该物品的承重。问能获得的最大价值。
n≤500n≤500n\le500

分析

挺好的一道题,我是在膜标的情况下做完这题的。

先把所有物品按照发送时间从小到大排序,发送时间相同就按照接受时间从大到小。那么一件物品上方的物品就一定会在它的前面。
考虑dp,设f[i,j]表示i以及i上面物品在所有时刻中最大重量为j时的最大收益。
转移的时候,我们需要枚举所有i上面的物品,维护一个g[i]表示时刻i之前物品的最大收益是多少。然后直接转移就好了。
具体可以看代码。

代码

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>const int N=505;int n,m,f[N][N*2],g[N*2];
struct data{int l,r,w,s,v;}a[N];bool cmp(data a,data b)
{return a.r<b.r||a.r==b.r&&a.l>b.l;
}int main()
{scanf("%d%d",&n,&m);for (int i=1;i<=n;i++) scanf("%d%d%d%d%d",&a[i].l,&a[i].r,&a[i].w,&a[i].s,&a[i].v);std::sort(a+1,a+n+1,cmp);a[n+1].l=0;a[n+1].r=n*2;a[n+1].s=m;for (int i=1;i<=n+1;i++)for (int j=a[i].w;j<=m;j++){int p=a[i].l;g[p]=0;for (int k=1;k<i;k++)if (a[k].l>=a[i].l){while (p<a[k].r) p++,g[p]=g[p-1];g[p]=std::max(g[p],g[a[k].l]+f[k][std::min(j-a[i].w,a[i].s)]);}f[i][j]=g[p]+a[i].v;}printf("%d",f[n+1][m]);return 0;
}

Codeforces 480D Parcels 动态规划相关推荐

  1. Codeforces 480D Parcels(dp)

    题目链接:Codeforces 480D Parcels 题目大意:就是有一个用来堆放货物的板,承重力为S.现在有N件货物,每件货物有到达的时间,运走的时间,以及 重量,承重,存放盈利.如果这件货物能 ...

  2. By Elevator or Stairs? CodeForces - 1249E(动态规划)

    题意 n层楼,a[i] (0<i<n)表示从 i 楼到 i + 1 楼走楼梯的时间,b[i] (0<i<n)表示从 i 楼到 i + 1 楼乘电梯的时间,其中每一次乘电梯需要等 ...

  3. codeforces gym-101741 Elevator 动态规划、单调队列

    题目 这里写链接内容 题解 注意:题目给出是按照时间给出的顺序. 我们考虑第iii个人要上的楼高h[i]" role="presentation" style=" ...

  4. Basketball Exercise CodeForces - 1195C(动态规划dp)

    Finally, a basketball court has been opened in SIS, so Demid has decided to hold a basketball exerci ...

  5. codeforces D.MADMAX 动态规划、记忆化搜索

    题意 给出一个DAG,每条边上有权重(权重是小写字母的ASCII码),现在两位同学A和B分别位于某两点上(可以相同),其中A和B轮流走,但是每人所走的边权不能变小,走到不能走为止就输. A先走,询问最 ...

  6. codeforces 687C (动态规划)The Values You Can Make

    The Values You Can Make Description(点击查看原题) Pari wants to buy an expensive chocolate from Arya. She ...

  7. 动态规划训练10 [Coloring Brackets CodeForces - 149D]

    西安交大 软件53 蔡少斐 整理 Coloring Brackets CodeForces - 149D 题目大意: 给定合法的括号序列,让你给括弧上色,并且上色时一定要满足3个要求: (1)每个括号 ...

  8. codeforces 792CDivide by Three(两种方法:模拟、动态规划

    传送门:https://codeforces.com/problemset/problem/792/C 题意:给你一个字符串,要求让你删除最少个数的元素,使得最终答案是没有前导0并且是3的倍数. 题解 ...

  9. Codeforces Round #349 (Div. 1) A. Reberland Linguistics 动态规划

    A. Reberland Linguistics 题目连接: http://www.codeforces.com/contest/666/problem/A Description First-rat ...

最新文章

  1. 学python推荐书籍-零基础学python推荐几本python学习的书籍
  2. Kubernetes的初始化容器initContainers
  3. 数据结构与算法笔记(三)—— 链表(单链表、循环链表、双向链表)
  4. java null 转空_java 对象属性为 null 值转为 空串
  5. numpypandas补充常用示例
  6. gRPC源码分析2-Server的建立
  7. jsp文件的请求是如何被服务器的JSP容器转换成静态网页的
  8. java 工作6年 面试_为什么不想搞Java了,6年经验去面试5分钟结束,现在Java面试为何这么难...
  9. 如何在 Mac 上的“快速查看”中查看和编辑文件
  10. Bootstrap3 如何防止插件冲突
  11. php mysql服务器配置_PHPMYSQL服务器配置说明_PHP
  12. AC-WEB使用HTTPS登录
  13. FFmpeg学习(12)——视频转码技巧之二次编码
  14. 快播资源哪里跑(逆向)
  15. Islands 架构原理和实践
  16. 燃爆朋友圈!中国设计师携手,用海报为武汉加油!
  17. 认证的公众号可以快速免费注册认证小程序
  18. 苹果电脑python怎么安装request_python怎么装request
  19. JDBC——MySQL
  20. java 读取excel模板_java如何读取excel表格的信息,java读取excel模板

热门文章

  1. CSS3元素闪烁效果
  2. python声音识别歌曲_听歌识曲--用python实现一个音乐检索器
  3. C# System命名空间表
  4. OpenStack Cinder特性之Volume-backed image介绍与验证
  5. 百亿级企业级 RPC 框架开源了!
  6. Android常见公有方法(隐藏虚拟按键/隐藏软键盘/获取屏幕宽高等)
  7. 公寓上网新认证方式破解研究
  8. latex如何设置字体并加粗_Latex设置字体大小,加粗,加下划线,变斜体_孩纸气_新浪博客...
  9. Guitar Pro 7吉他谱教程——删除小节
  10. 如何提高程序员键盘使用效率