蓝桥杯试题 算法提高 学生节

题目很眼花缭乱,其实是0/1背包变形式子,注意事项以及AC代码如下:

 1 #pragma GCC optimize(2)
 2 #include<bits/stdc++.h>
 3 using namespace std;
 4 int dp[1010][1010];//在ti最晚时间,能看m个节目的最大的价值
 5 int n,m,t;
 6 int value[1010];
 7 int main()
 8 {
 9     ios::sync_with_stdio(false);
10     cin>>n>>m>>t;
11     for(register int i=1;i<=n;i++)
12     cin>>value[i];
13     while(t--)//依次读取最晚时间 
14     {
15         int ti;
16         cin>>ti;
17         for(register int i=1;i<=ti;i++)
18         {
19             for(register int j=1;j<=m;j++)
20             {
21                 dp[i][j]=max(dp[i-1][j],dp[i-1][j-1]+value[i]);
22             }
23         }
24         cout<<dp[ti][m]<<endl;
25     }
26     return 0;
27 }

 

posted @ 2022-03-09 20:37  江上舟摇  阅读(79)  评论(0编辑  收藏  举报