P1048 [NOIP2005 普及组] 采药

题目链接 https://www.luogu.com.cn/problem/P1048

本来想找一个背包的题目试一下,我也真是没想到它这么水.....

这跟01背包不能说是类似,只能说是一模一样。换一个变量名称的事儿。。。。。


放AC代码

二维:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     int T,M;
 6     int t[110],v[110],dp[110][1010];
 7     cin>>T>>M;
 8     for(int i=1;i<=M;i++)
 9         cin>>t[i]>>v[i];
10     for(int i=1;i<=M;i++)
11     {
12         for(int j=0;j<=T;j++)
13         {
14             if(j<t[i]) dp[i][j]=dp[i-1][j];
15             else dp[i][j]=max(dp[i-1][j],dp[i-1][j-t[i]]+v[i]);
16         }
17     }
18     cout<<dp[M][T];
19     return 0;
20 }

一维:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int T,M;
 4 int t[110],v[110],dp[1010];
 5 int main()
 6 {
 7     cin>>T>>M;
 8     for(int i=1;i<=M;i++)
 9         cin>>t[i]>>v[i];
10     for(int i=1;i<=M;i++)
11     {
12         for(int j=T;j>=0;j--)
13         {
14             if(j>=t[i])
15             dp[j]=max(dp[j],dp[j-t[i]]+v[i]);
16         }
17     }
18     cout<<dp[T];
19     return 0;
20 }

 

posted @ 2022-04-08 22:35  爱吃虾滑  阅读(88)  评论(0编辑  收藏  举报