??牛客网–点菜问题(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;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • spss系统聚类分析报告_社会分析数据分析

    spss系统聚类分析报告_社会分析数据分析介绍聚类分析的原理和各种聚类方法的选择和使用

  • 大公司里怎样开发和部署前端代码[通俗易懂]

    大公司里怎样开发和部署前端代码[通俗易懂]这是一个非常有趣的非主流前端领域,这个领域要探索的是如何用工程手段解决前端开发和部署优化的综合问题,入行到现在一直在学习和实践中。在我的印象中,facebook是这个领域的鼻祖,有兴趣、有梯子的同学可以去看看facebook的页面源代码,体会一下什么叫工程化。接下来,我想从原理展开讲述,多图,较长,希望能有耐心看完。原文https://github.com/fouber/blog

  • PHPMailer发送邮件中文附件名是乱码

    PHPMailer发送邮件中文附件名是乱码

  • delphi xe5 激活成功教程

    delphi xe5 激活成功教程通过测试可用,RADStudioXE5激活成功教程补丁及方法第一步,将下载下来的“delphicbuilder_xe5_win.iso”解压到任意盘,任意目录。http://altd.embarcadero.com/download/radstudio/xe5/delphicbuilder_xe5_win.iso第二步,将“免序列号安装授权文件”文件夹中的“RADS

  • 为网站添加多种语言

    为网站添加多种语言

  • Java的运行机制(一)

    Java的运行机制(一)前言:还是那句话,第一、凡是涉及到概念性内容的时候,我都会到官网去确认内容的真实性!第二、我喜欢偏向于原理学习。在java介绍里面,我认为知道这是一门完全面向对象的语言就足够了。我的导师说C++是认为程序员是很强大的,开放了所有的功能权限;Java是认为程序员不是那么全能的,有些危险的操作,不会让你执行。不知道您是否也这么认为呢?目录一、类的结构二、运行机制1、编译方式…

发表回复

您的电子邮箱地址不会被公开。

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