C题,哪位神仙能够指出代码哪有问题
C题, 也是想用二维dp, 代码实现略丑,只过了 60% 的数据, 不知道哪里有问题, 望赐教 QWQ
int dp[2005][2005];
// map<int,int> book;
int book[2005][2005];
vector<pair<int, int> > q, qq;
class Solution {
public:
int minCost(int breadNum, int beverageNum, vector<vector<int> >& packageSum) {
memset(dp,0x3f,sizeof(dp));
dp[0][0] = 0;
q.push_back({0,0});
book[0][0] = 1;
for(auto &v : packageSum) {
for(auto &*** : q) {
int a = ***.first + v[0];
int b = ***.second + v[1];
if(a > breadNum) a = breadNum;
if(b > beverageNum) b = beverageNum;
dp[a][b] = min(dp[a][b], dp[***.first][***.second]+v[2]);
if(!book[a][b]) qq.push_back({a,b});
book[a][b] = 1;
}
for(auto &*** : qq) q.push_back(***);
qq.clear();
}
return dp[breadNum][beverageNum];
}
};
叮咚买菜工作强度 246人发布