??牛客网–点菜问题(01背包问题)

??牛客网–点菜问题(01背包问题)

题目描述
北大网络实验室经常有活动需要叫外卖,但是每次叫外卖的报销经费的总额最大为C元,有N种菜可以点,经过长时间的点菜,网络实验室对于每种菜i都有一个量化的评价分数(表示这个菜可口程度),为Vi,每种菜的价格为Pi, 问如何选择各种菜,使得在报销额度范围内能使点到的菜的总评价分数最大。 注意:由于需要营养多样化,每种菜只能点一次。
输入描述:
输入的第一行有两个整数C(1 <= C <= 1000)和N(1 <= N <= 100),C代表总共能够报销的额度,N>代表能点菜的数目。接下来的N行每行包括两个在1到100之间(包括1和100)的的整数,分别表示菜的>价格和菜的评价分数。
输出描述:
输出只包括一行,这一行只包含一个整数,表示在报销额度范围内,所点的菜得到的最大评价分数。
链接:https://www.nowcoder.com/questionTerminal/b44f5be34a9143aa84c478d79401e22a
来源:牛客网

     #include<bits/stdc++.h>
using namespace std;

struct cai{
    int price;
    int score;
}cai[101];
    
    
int max(int i,int j){
    return (i>j)?i:j;
}


int main(){
    int c,n;//c报销总额,n菜的数目
    int dp[1001];//对应报销额的评分
    while(cin>>c>>n){
        for(int i=0;i<n;i++){
            cin>>cai[i].price>>cai[i].score;
        }
      memset(dp,0,sizeof(dp));
        for(int i=0;i<n;i++){//菜的种类
            for(int j=c;j>=cai[i].price;j--){//可报销的额度(限制因素)
                dp[j]=max(dp[j],dp[j-cai[i].price]+cai[i].score);
            }
        }
        cout<<dp[c]<<endl;
    }
    return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100215.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 生成h5文件_h5实现文件下载

    生成h5文件_h5实现文件下载生成训练h5文件importh5pyimportosimportcv2importmathimportnumpyasnpimportrandomimportroot_path=”/home/tyd/caffe_case/HDF5/image”withopen(“/home/tyd/caffe_case/HDF5/hdf5.txt”,”r”)…

    2025年10月12日
    2
  • 工程伦理学_笔记(复习用)「建议收藏」

    工程伦理学_笔记(复习用)「建议收藏」工程伦理学第一章工程与伦理1.1如何理解工程一、技术与工程的区别二、技术与工程的联系三、工程的定义四、工程的过程五、工程具有不确定性和探索性六、理解工程活动的7个维度1.2如何理解伦理一、道德与伦理二、不同的伦理立场三、伦理困境与伦理选择1.3工程实践中的伦理问题一、工程活动中的行动者网络(具有动态性和网络性)二、主要的工程伦理问题三、工程伦理问题的特点1.4如何处理工程实践中的伦理问题一、工程实践中伦理问题的辨识二、处理工程伦理问题的基本原则三、应对工程伦理问题的基本思路第二章工程中的风险、安

    2022年7月15日
    16
  • pycharm激活码2021(破解版激活)

    pycharm激活码2021(破解版激活),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    82
  • java面试不会怎么办_【必须录用】面试遇到不会回答的问题,该怎么办?

    java面试不会怎么办_【必须录用】面试遇到不会回答的问题,该怎么办?一.前言今天给大家讲讲面试过程当中最长遇到的窘境,也是最能体现一个候选人临场应变能力的地方,那就是当我们在面试的过程当中,遇到的问题回答不上来的时候,该怎么办。二.误区在开始讲解之前,先纠正一个误区,那就是对于一场面试而言,最后的结果好坏并不完全取决于面试当中的问题是否都回答了上来。能不能录取和是否回答出所有问题并没有直接的联系。换句话说,我自己经历过的,无论是面试也好,还是面别人也罢,问题没…

    2022年7月9日
    23
  • c语言-日期格式化[通俗易懂]

    c语言-日期格式化[通俗易懂]7-12日期格式化(5分)世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。输入格式:输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。输出格式:在一行中按照“yyyy-mm-dd”的格式给出年…

    2022年6月9日
    47
  • MyBatis 快速入门和重点详解(详解)「建议收藏」

    MyBatis 快速入门和重点详解(详解)「建议收藏」目录前言:准备工作:开始:1、创建项目(本博主就使用Eclipse,其他编辑器都可以,工具而已)2、创建数据库(mybatisdemo)及表(student)3、创建User对象4、在entity包下创建userMapper,xml文件,如下图5、创建MyBatis的配置文件6、创建MybatisTest.java进行测试前言:Mybatis概念、名词的…

    2022年6月13日
    27

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号