动态规划 洛谷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 }
结束啦