一看到这道题就是01背包

但是我注意到价值和当前的时间有关。

没有想太多,直接写,0分

然后发现输入方式不对……

改了之后只有25分

我知道wa是因为时间会影响价值,但不知道怎么做。

后来看了题解,发现我对01背包理解不够透彻
普通01背包做下来放入物品的顺序是1到n的
因为这个时候顺序没有关系,所以可以直接做
但是这道题后面放的物品价值小,所以价值有关系
所以就要提前排好序。
排序的依据就判断相邻两个物品先后放的价值,
然后化简可以推出一个式子。
这里其实是一个贪心。
然后就做01背包就好了

然后注意开long long

#include<cstdio>
#include<algorithm>
#include<cstring>
#define REP(i, a, b) for(int i = (a); i < (b); i++)
#define _for(i, a, b) for(int i = (a); i <= (b); i++)
using namespace std;typedef long long ll;
const int MAXN = 112;
const int MAXM = 112345;
ll f[MAXM];
struct node
{ll a, b, c;bool operator < (const node& rhs) const{return c * rhs.b < rhs.c * b;}
}s[MAXN];
int t, n;int main()
{scanf("%d%d", &t, &n);REP(i, 0, n) scanf("%lld", &s[i].a);REP(i, 0, n) scanf("%lld", &s[i].b);REP(i, 0, n) scanf("%lld", &s[i].c);sort(s, s + n);ll ans = 0;REP(i, 0, n)for(int j = t; j >= s[i].c; j--){f[j] = max(f[j], f[j-s[i].c] + s[i].a - j * s[i].b);ans = max(ans, f[j]);}  printf("%lld\n", ans);return 0;
}

转载于:https://www.cnblogs.com/sugewud/p/9819383.html

洛谷 P1417 烹调方案 (01背包拓展)相关推荐

  1. 洛谷P1417 烹调方案

    洛谷P1417 烹调方案 如果是一般的01背包的话 选的先后是没关系的 但是这题选的先后是有关系的,因为他的价值是随着时间而变化的, 而你的01背包是做不到先选2再选1的 那么我们就跟国王游戏一样 用 ...

  2. 洛谷 P1417 烹调方案

    题目背景 由于你的帮助,火星只遭受了最小的损失.但gw懒得重建家园了,就造了一艘飞船飞向遥远的earth星.不过飞船飞到一半,gw发现了一个很严重的问题:肚子饿了~ gw还是会做饭的,于是拿出了储藏的 ...

  3. 洛谷—P1417 烹调方案(背包问题)

    解题思路: 如果没有b[i]这个属性的话就是明显的01背包问题. 现在考虑相邻的两个物品x,y.假设现在已经耗费p的时间,那么分别列出先做x,y的代价: a[x]-(p+c[x])*b[x]+a[y] ...

  4. 洛谷1417烹调方案——动态规划:价值受时间影响

    题目:https://www.luogu.org/problemnew/show/P1417 与01背包的不同在于价值受时间影响. 对第i个物品的遍历有一个先后顺序,在01背包里顺序不影响,但此时顺序 ...

  5. 洛谷 1417 烹调方案

    题目背景 由于你的帮助,火星只遭受了最小的损失.但gw懒得重建家园了,就造了一艘飞船飞向遥远的earth星.不过飞船飞到一半,gw发现了一个很严重的问题:肚子饿了~ gw还是会做饭的,于是拿出了储藏的 ...

  6. 洛谷 P1049 装箱问题(01背包)

    一道水题,但看到好久没有发博客了,再一看是一道noip普及组t4,就做了. 题目链接 https://www.luogu.org/problemnew/show/P1049 解题思路 一道裸的01背包 ...

  7. 洛谷1048 采药(01背包)

    传送门 [题目分析] 这个两维降一维妙妙妙啊...... 好吧我已经菜的做01背包了.... [代码~] #include<bits/stdc++.h> using namespace s ...

  8. 【每日DP】day4 P1417 烹调方案(奇怪的01背包增加了)难度⭐⭐⭐

    P1417 烹调方案 每件物品只有一个,很明显是01背包,但是价值的转换方式不同,是要求 ai−t∗bia_i-t*b_iai​−t∗bi​ 尽可能最大.普通的01背包的价值是不变的,而这一道题目中的 ...

  9. p1417 烹调方案_Java 8的烹调方式–拼图项目

    p1417 烹调方案 什么是Project Jigsaw:Project Jigsaw是使Java编译器模块知道的项目. 多年以来,Java API一直是单块的,即从代码的任何部分都可以平等地看到整个 ...

最新文章

  1. springboot 获取配置文件中的值_Spring Boot面试必问(亲测)
  2. Management of your data
  3. VTK:PolyData之Curvatures
  4. Java网络编程二:Socket详解
  5. xstream,节点属性起别名时这样的问题你遇到过吗
  6. 芯片短缺波及国内车市 5月国内汽车销量下降3.1%
  7. Realme首款5G手机真我X50官宣:支持SA/NSA双模5G
  8. Python报错 SyntaxError: invalid syntax
  9. Android Sensors (3) 传感器坐标系统
  10. pandas 中的模糊匹配
  11. 2020_1123_生活记录
  12. 植发搞笑图片_搞笑:终于找到原图了!像不像?
  13. 巴菲特指标:估值过高
  14. iridescent歌词翻译
  15. aop:aspectj-autoproxy
  16. 数据可视化——绘制3D图表和绘制地图
  17. Hive正则表达式对数据过滤
  18. 如何修改mysql占用的端口号_修改mysql端口号(mysql的端口号)
  19. matlab 八连通,针对matlab 四连通,和八连通的详解
  20. 剑指offter 动态规划

热门文章

  1. 学计算机等级考试电脑版软件,计算机二级考试宝典电脑版
  2. oracle的age datetime,python cx_Oracle插入TIMESTAMP字段后显示格式问题?
  3. 设置堆内存大小_jmap和jhat命令行工具的配合使用,更好的掌握堆内存状况
  4. Python——Django框架——Model数据库模型
  5. ubuntu16.04 编译出错:fatal error: SDL/SDL.h: No such file or directory
  6. 李国浩20179307第二周作业
  7. 如何制作pem公钥证书和私钥证书
  8. 常用类回顾之(String类)
  9. OpenLayers3 online build
  10. CCNA课堂精简笔记