动态规划 洛谷P1048 [NOIP2005 普及组] 采药

 洛谷P1048 [NOIP2005 普及组] 采药

洛谷的一个谱架-的题目,考的是01背包问题,接下来分享一下我的题解代码。

 

AC通过图:

 

 

我的代码:

 1 //动态规划 洛谷P1048 [NOIP2005 普及组] 采药
 2 #include<iostream>
 3 #include<cmath>
 4 using namespace std;
 5 int value[105];//价值数组
 6 int times[105];//时间数组
 7 long long dp[1000];
 8 int main()
 9 {
10     int m,t;//m是数目,t是时间
11     cin>>t>>m;
12     for(int i=1;i<=m;++i)
13     {
14         cin>>times[i]>>value[i];//输入数据
15     }
16     for(int i=1;i<=m;++i)//因为每一种草药最多采摘一次 所以从草药开始遍历
17     {
18         for(int j=t;j>=times[i];--j)
19         {
20             dp[j]=max(dp[j],dp[j-times[i]]+value[i]);
21         }
22     }
23     
24     cout<<dp[t];
25     return 0;
26 
27 }

 

结束啦

posted @ 2022-03-31 18:01  朱朱成  阅读(59)  评论(0编辑  收藏  举报