前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >牛客网–采药(01背包)

牛客网–采药(01背包)

作者头像
全栈程序员站长
发布2022-06-29 14:53:56
2830
发布2022-06-29 14:53:56
举报
文章被收录于专栏:全栈程序员必看

输入描述: 输入的第一行有两个整数T(1 <= T <= 1000)和M(1 <= M <= 100),T代表总共能够用来采药的时间,M代表山洞里的草药的数目。 接下来的M行每行包括两个在1到100之间(包括1和100)的的整数,分别表示采摘某株草药的时间和这株草药的价值。 输出描述: 可能有多组测试数据,对于每组数据, 输出只包括一行,这一行只包含一个整数,表示在规定的时间内,可以采到的草药的最大总价值。

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

struct hert{ int time; int value; }hert[101];

int dp[1001];//T时间所得价值

int max(int i,int j){ return (i>j)?i:j;}

int main(){ int m,t; int time[100]; int price[100]; while(cin>>t>>m){ for(int i=1;i<=m;i++){ cin>>hert[i].time>>hert[i].value; } for(int i=1;i<=t;i++){ dp[i]=0; } for(int i=1;i<=m;i++){//药草种类 for(int j=t;j>=hert[i].time;j–){//时间(限制因素) dp[j]=max(dp[j],dp[j-hert[i].time]+hert[i].value); } } cout<<dp[t]<<endl; } return 0; }

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年5月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档