当前位置: 首页 > news >正文

《算法笔记》11.8小节——动态规划专题->总结 问题 G: 点菜问题

题目描述

北大网络实验室经常有活动需要叫外买,但是每次叫外买的报销经费的总额最大为C元,有N种菜可以点,经过长时间的点菜,网络实验室对于每种菜i都有一个量化的评价分数(表示这个菜可口程度),为Vi,每种菜的价格为Pi, 问如何选择各种菜,使得在报销额度范围内能使点到的菜的总评价分数最大。
    注意:由于需要营养多样化,每种菜只能点一次。

输入

输入的第一行有两个整数C(1 <= C <= 1000)和N(1 <= N <= 100),C代表总共能够报销的额度,N>代表能点菜的数目。接下来的N行每行包括两个在1到100之间(包括1和100)的的整数,分别表示菜的>价格和菜的评价分数。

输出

输出只包括一行,这一行只包含一个整数,表示在报销额度范围内,所点的菜得到的最大评价分数。

样例输入
1 3
1 5
3 3
2 5
24 8
2 9
8 6
4 1
1 4
2 2
10 5
2 1
1 4
样例输出
5
30

分析: 0-1 背包问题。

#include<algorithm>
#include <iostream>
#include  <cstdlib>
#include  <cstring>
#include   <string>
#include   <vector>
#include   <cstdio>
#include    <queue>
#include    <stack>
#include    <ctime>
#include    <cmath>
#include      <map>
#include      <set>
#define INF 0x3fffffff
#define db1(x) cout<<#x<<"="<<(x)<<endl
#define db2(x,y) cout<<#x<<"="<<(x)<<", "<<#y<<"="<<(y)<<endl
#define db3(x,y,z) cout<<#x<<"="<<(x)<<", "<<#y<<"="<<(y)<<", "<<#z<<"="<<(z)<<endl
#define db4(x,y,z,r) cout<<#x<<"="<<(x)<<", "<<#y<<"="<<(y)<<", "<<#z<<"="<<(z)<<", "<<#r<<"="<<(r)<<endl
#define db5(x,y,z,r,w) cout<<#x<<"="<<(x)<<", "<<#y<<"="<<(y)<<", "<<#z<<"="<<(z)<<", "<<#r<<"="<<(r)<<", "<<#w<<"="<<(w)<<endl
using namespace std;int main(void)
{#ifdef testfreopen("in.txt","r",stdin);
//    freopen("out.txt","w",stdout);clock_t start=clock();#endif //testint c,n;while(~scanf("%d%d",&c,&n)){int price[1005]={0},point[1005]={0},dp[1005]={0};for(int i=1;i<=n;++i)scanf("%d%d",&price[i],&point[i]);for(int i=1;i<=n;++i){for(int j=c;j>=price[i];--j){dp[j]=max(dp[j],dp[j-price[i]]+point[i]);}}int ans=-1;for(int i=0;i<=c;++i)ans=max(dp[i],ans);printf("%d\n",ans);}#ifdef testclockid_t end=clock();double endtime=(double)(end-start)/CLOCKS_PER_SEC;printf("\n\n\n\n\n");cout<<"Total time:"<<endtime<<"s"<<endl;        //s为单位cout<<"Total time:"<<endtime*1000<<"ms"<<endl;    //ms为单位#endif //testreturn 0;
}

相关文章:

  • 工具环境与系统部署
  • React中使用 Ant Design Charts 图表
  • 【人工智能发展史】从黎明到曙光01
  • 精益数据分析(75/126):用户反馈的科学解读与试验驱动迭代——Rally的双向验证方法论
  • react中运行 npm run dev 报错,提示vite.config.js出现错误 @esbuild/win32-x64
  • PHP伪随机数
  • Java Collection(集合) 接口
  • windows powershell 判断 进程号是否存在
  • OS进程调度
  • LeetCode 3355.零数组变换 I:差分数组
  • Java课堂笔记7
  • php://filter的trick
  • 直线型绝对值位移传感器:精准测量的科技利刃
  • 佰力博科技与您探讨压电材料的原理与压电效应的应用
  • modelscope v1.26.0全新发布!云端模型下载加速+多重安全升级,打造新时代AI开发新体验!
  • AI护航化工:《山西省危化品视频智能分析指南》下的视频分析重构安全体系
  • Vue3 组件之间传值
  • elementui初学1
  • 第15天-NumPy科学计算实战:从基础到图像处理
  • 是德科技 | 单通道448G未来之路:PAM4? PAM6? PAM8?
  • 编程开发/网站优化排名哪家好
  • h5混搭php建设网站/山东seo优化
  • dedecms做网站有多快/怎样给自己的网站做优化
  • 凡科网站怎么做链接/免费男女打扑克的软件
  • 免费网站建站 网页/国外市场网站推广公司
  • 做公司官网怎么做/企业官网seo