用dfs写,输出全0

P1336 最佳课题选择

@[eb0ycn](/user/536337) 你得搜索逻辑有点混乱,不妨设置递归函数int f(int n,int m)含义为当前剩余n篇论文,还有m个课题可供选择的情况下,最小花费时间 ```cpp ll f(int n, int m) { // 论文剩余0篇,需要0时间 if (n == 0) { return 0; } if (m == 0 && n > 0) { // 永远完不成了 return INT_MAX / 3; } if (dp[n][m] != -1) return dp[n][m]; // 当前课题可以选择完成论文数量 ll ans = INT_MAX / 3; for (int i = 0; i <= n; ++i) { // 当前论文需要的时间 ll t = (ll) (nums[m].a * pow(i, nums[m].b)); ans = min(ans, t + f(n - i, m - 1)); } dp[n][m] = ans; return ans; } ```
by yuelaiyuecai @ 2023-12-29 11:12:07


|