面包师Lavrenty打算用馅料做几个面包,然后把它们卖掉。

Lavrenty有\(n\)克面团和\(m\)种不同的馅料。馅料种类的下标从\(1到m\),他知道他的第\(i\)种馅料剩下\(a_i\) 克,做一个第\(i\)种馅料的面包,恰恰需要\(b_i\)克的\(i\)种馅料和\(c_i\)克的面团,同时这种面包可以卖\(d_i\)块钱。

他也可以做没有馅的面包。每个这样的面包需要\(c_0\)克面团,可以卖\(d_0\)块Tugrik。所以Lavrenty可以做任何数量的包子,用不同的馅料或者不用馅料,除非用完了面团和馅料。Lavrenty会扔掉烘培面包后剩下的所有多余材料。

求出Lavrenty可以赚取的钱的最大数量。

输入格式

第一行4个整数n,m,\(c_0,d_0\) \(1<=n<=1000,1<=m<=10\)
接下来m行每行四个整数\(a_i,b_i,c_i,d_i\) \(1<=a_i,b_i,c_i,d_i<=100\)

输出格式

输出Lavrenty可以赚取的最大钱数

样例输入

10 2 2 1
7 3 2 100
12 3 1 10

样例输出

241

题解

很好的一道多重背包模板,然而却似乎没有很多人做?
这里放上两份代码,一份详细一份简单

#include<bits/stdc++.h>
#define maxm 50
#define maxn 1500
#define maxa 150
using namespace std;
inline char get(){static char buf[3000],*p1=buf,*p2=buf;return p1==p2 && (p2=(p1=buf)+fread(buf,1,3000,stdin),p1==p2)?EOF:*p1++;
}
inline int read(){register char c=get();register int f=1,_=0;while(c>'9' || c<'0')f=(c=='-')?-1:1,c=get();while(c<='9' && c>='0')_=(_<<3)+(_<<1)+(c^48),c=get();return _*f;
}
int n,m;//n表示面团总数,m表示馅料种类
int a[maxn],d[maxn],b[maxn],c[maxn];
/*
a表示第i种馅料剩余数量
b表示第i种要的馅料数量
c表示第i种要的面团数量
d表示收益
*/
int dp[maxm][maxn];//第一维遍历面包种类,第二维遍历面团
int num;
int note[maxm][maxn];
int main(){//freopen("1.txt","r",stdin);n=read();m=read();c[1]=read();d[1]=read();a[1]=0;b[1]=0;//cout<<n<<m<<endl;int out=-1;for(register int i=2;i<=m+1;i++)a[i]=read(),b[i]=read(),c[i]=read(),d[i]=read();for(register int i=1;i<=m+1;i++){//遍历面包种类 for(register int j=0;j<=n;j++){//遍历面团重量for(register int k=0;k*b[i]<=a[i] && k*c[i]<=n;k++){if(j>=c[i]*k){dp[i][j]=max(dp[i-1][j-c[i]*k]+d[i]*k,dp[i][j]);}}//cout<<i<<" "<<j<<" "<<dp[i][j]<<endl;out=max(out,dp[i][j]);}}cout<<out<<endl;return 0;
}
#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[1500],d[1500],b[1500],c[1500];
int dp[15][1500];
int main(){n=read();m=read();cin>>c[1]>>d[1];a[1]=0;b[1]=0;for(int i=2;i<=m+1;i++)a[i]=read(),b[i]=read(),c[i]=read(),d[i]=read();for(int i=1;i<=m+1;i++){for(int j=0;j<=n;j++){for(int k=0;k*b[i]<=a[i] && k*c[i]<=n;k++){if(j>=c[i]*k)dp[i][j]=max(dp[i-1][j-c[i]*k]+d[i]*k,dp[i][j]);}out=max(out,dp[i][j]);}}cout<<out<<endl;return 0;
}

转载于:https://www.cnblogs.com/Chen574118090/p/10201654.html

[CF106C]Buns相关推荐

  1. Codeforce C. Buns

    题目:http://www.codeforces.com/contest/106/problem/C 题目告诉你有n克面粉,m种馅料,然后每种馅料有ai克,bi克馅料和ci克面粉做的面包可以买di元, ...

  2. Codeforces Beta Round #82 (Div. 2) C. Buns(多重背包)

    题目链接 题意:面包师Lavrenty打算用馅料做几个面包,然后把它们卖掉.Lavrenty有n克面团和m种不同的馅料.馅料种类的下标从1到m,他知道他的第i种馅料剩下ai 克,做一个第i种馅料的面包 ...

  3. 动态规划 —— 背包问题

    [概述] 背包问题(Knapsack problem)是一种组合优化的NP完全问题. 问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最 ...

  4. UE商城资源 Kitsune狐狸女孩

    Unreal Engine虚幻游戏引擎素材资源 Unreal Engine Marketplace –Kitsune 4.26狐狸女孩 大小解压后:569M 可爱的Kitsune的3D模型.装配到史诗 ...

  5. MPB:东林牛犇组玉米根系简化细菌群落的定量与其生物防治效果的评价方法(视频)...

    为进一步提高<微生物组实验手册>稿件质量,本项目新增大众评审环节.文章在通过同行评审后,采用公众号推送方式分享全文,任何人均可在线提交修改意见.公众号格式显示略有问题,建议电脑端点击文末阅 ...

  6. java的知识点34——线程通信 || 生产者与消费者问题

    线程通信 应用场景:生产者和消费者问题 • 假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费 • 如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待, ...

  7. How HBO’s Silicon Valley built “Not Hotdog” with mobile TensorFlow, Keras React Native

    The HBO show Silicon Valley released a real AI app that identifies hotdogs - and not hotdogs - like ...

  8. R 语言聚类关联规则

    a <- c(10,9,8) b<- c(4,3,2) c<- c(8,9,10) a 10 9 8 # 余角相似度 sum(a*b)/sqrt(sum(a^2)*sum(b^2)) ...

  9. 无监督学习与监督学习_有监督与无监督学习

    无监督学习与监督学习 If we don't know what the objective of the machine learning algorithm is, we may fail to ...

  10. python绘制直方图显示数字_python dataframe中各元素出现次数统计及画直方图

    比如: print(Counter(a[0])) Counter({'sausage': 825, 'whole milk': 717, 'frankfurter': 580, 'tropical f ...

最新文章

  1. 纯JS实现带小圆点缩略图及左右箭头的轮播图
  2. Indy10中IdMappedPortTCP的用法
  3. 关于 运行root.sh 时出错误Timed out waiting for the CRS stack to start.的解决
  4. 微信扫一扫识物的技术揭秘:抠图与检索
  5. java中没有scanner_如何使用java.util.Scanner验证输入?
  6. 开发SPI时不要犯这个错误
  7. github 开放_GitHub为女性开发人员所做的工作,Tim O'Reilly谈开放数据等
  8. (代码篇)从基础文件IO说起虚拟内存,内存文件映射,零拷贝
  9. ACM之八数码问题----BFS搜索----数独游戏的模拟(下)
  10. 常见经典排序算法学习总结(插入、shell、冒泡、选择、归并、快排等)
  11. 36. Never redifine an inherited non-virtual function
  12. 最常用的PHP正则表达式收集整理
  13. VISIO各种图标超全(IT行业专用网络及硬件)_几招教你如何轻松解决视频行业痛点...
  14. java怎么销毁session_java怎么销毁session?
  15. win10重新安装应用商店
  16. web前端开发和java后端_web前端开发和后端开发的区别是什么
  17. 瑞幸咖啡,成败今年见分晓!
  18. 计算机重启很慢,电脑重启慢的原因
  19. TcaplusDB君 | 行业新闻汇编(7月1日)
  20. python公众号接口_用Python实现微信公众号API素材库图文消息抓取

热门文章

  1. 黑苹果10.15.7使用
  2. c# asp.net web程序获取当前文件路径
  3. 传说中WM手机工程测试命令
  4. 【图片新闻】俄罗斯水下核武器“海啸天启鱼雷”探秘
  5. 嘉兴 机器人仓库 菜鸟_菜鸟智能机器人仓库启用 助力包裹分得又快又好
  6. 趣味点名软件_网传川大教授用刷脸软件点名 无人逃课
  7. 攻防世界 WEB mfw
  8. XCTF-MFW Git泄露,命令执行漏洞 详解
  9. 湖南科技大学c语言上机题库,2018年湖南科技大学计算机科学与工程院824C语言程序设计与数据结构综合之C程序设计考研核心题库...
  10. 有人在开课吧学习过吗?值得信任吗?教学质量如何?