P1417 烹调方案

每件物品只有一个,很明显是01背包,但是价值的转换方式不同,是要求 ai−t∗bia_i-t*b_iai​−t∗bi​ 尽可能最大。普通的01背包的价值是不变的,而这一道题目中的价值是随着所选物品的顺序有所改变,所以应该按照题意排序,并用 maxn去找最大的答案,因为答案不一定是f[t]f[t]f[t]。

还有就是常开longlonglong longlonglong 是个好习惯。

那么现在就看如何排序就好,对于每一件物品,影响价值的因素是 b 和 t,t是由 c 叠加而来,所以按照a.c*b.b<b.c*a.b来排序即可。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=100007;
const ll mod=100000000;
struct node
{ll a,b,c;bool operator<(const node &t)const{return c*t.b<t.c*b;}
}a[N];
ll n,m,f[N],maxn;
int main()
{scanf("%lld %lld",&m,&n);for(int i=1;i<=n;++i)scanf("%lld",&a[i].a);for(int i=1;i<=n;++i)scanf("%lld",&a[i].b);for(int i=1;i<=n;++i)scanf("%lld",&a[i].c);sort(a+1,a+1+n);for(ll i=1;i<=n;++i)for(ll j=m;j>=a[i].c;--j)f[j]=max(f[j],f[j-a[i].c]+a[i].a-a[i].b*j);for(ll i=1;i<=m;++i)maxn=max(maxn,f[i]);printf("%lld\n",maxn);return 0;
}

有任何疑问欢迎评论哦虽然我真的很菜
点个关注再走吧

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

  1. 洛谷P1417 烹调方案

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

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

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

  3. P1417 烹调方案 (0/1背包+贪心)

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

  4. 洛谷 P1417 烹调方案

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

  5. P1417 烹调方案

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

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

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

  7. P1417烹调方案——背包问题中的排序

    题目:https://www.luogu.org/problemnew/show/P1417 与普通的01背包不同的一点是加入物品的顺序对结果有影响,这里可以考虑贪心的想法,把对全局影响最小的物品排在 ...

  8. 背包问题_(DP经典),一,(01背包,填满背包)

    背包系列已更新 一,(01背包,填满背包) 二,(多重背包) 三,(完全背包) 目录 一,01背包(对于一个物品,你要么全拿,要么不拿) 核心dp方程,dp[i][j]=max(dp[i-1][j], ...

  9. 洛谷 P1417 烹调方案 (01背包拓展)

    一看到这道题就是01背包 但是我注意到价值和当前的时间有关. 没有想太多,直接写,0分 然后发现输入方式不对-- 改了之后只有25分 我知道wa是因为时间会影响价值,但不知道怎么做. 后来看了题解,发 ...

最新文章

  1. 算法了解:RCNN、SPP-Net、Fast-RCNN、Faster-RCNN
  2. 编程python用什么软件比较好-新手入门Python编程的8个实用建议
  3. memcached全面剖析–3.memcached的删除机制和发展方向
  4. Free Download Top 100 Hacking Books
  5. AGC024E - Sequence Growing Hard
  6. Tycoon:针对多种平台上的Java JIMAGE的勒索软件
  7. MySQL数据库开启root用户远程登录
  8. ApacheCN Java 译文集 20211012 更新
  9. 在github上参与开源项目日常流程
  10. word打开老是配置进度_word怎么转pdf?两个值得学习的高效转换法
  11. Python爬虫:使用Appium在移动端抓取微博数据
  12. 【整理】显微镜下人体细胞视频合集
  13. 比亚迪F3 2009版手动豪华型车辆使用记录
  14. dubbo服务暴露与注册
  15. 熔断机制什么意思_熔断机制是什么意思?熔断机制的作用
  16. 华为云系统繁忙,请稍后再试(0356034)账号升级错误
  17. codeforces 869E The Untended Antiquity
  18. EasyCVR接入大华CVS录像机,下载录像文件名为空是如何解决的?
  19. Invalid component name: “Home,“. Component names should conform to valid custom element。。。控制台报错
  20. 7000万嫁女煤老板折射中国式土豪困境:富而不贵

热门文章

  1. 猫哥教你写爬虫 046--协程-实践-吃什么不会胖
  2. 13种编程语言名称的来历
  3. Kipmi0 占用100% CPU1核
  4. Action向视图传值的6种方式
  5. Yii中创建自己的Widget
  6. Ubuntu13.04下使用dnw
  7. 开源网络备份软件bacula学习笔记
  8. 如何利用客户端在CU发博客
  9. C++实现CString和string的互相转换(转)
  10. [零基础学JAVA]Java SE应用部分-27.Java IO操作(01)