当成特殊的背包问题,用动态规划的方法。 核心:dp[x]表示在考试时间剩下x分钟时,能获得的最高分数。 两层循环,外层遍历物品(即本题中的考试题目,完整做完一题和部分做题视为同一个物品的两种价格和价值),内层循环遍历剩余时间。 #include <bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; int p[n+1],a[n+1],q[n+1],b[n+1]; int total=120; p[0]=a[0]=q[0]=b[0]=0; for(i...