9.19小米笔试

第一题用0-1背包的思想,但是一直只能过64% ,好想知道为什么

#include<iostream>
#include<algorithm>
#include <vector>
using namespace std;
bool isValid (vector<int>&amp; weight, int bagSize, int q) {
    int len = weight.size();
    vector<vector<bool>> dp(len + 1, vector<bool>(bagSize + 1, false));
    dp[0][0] = true;
    bool flag = false;
    for (int i = 1; i < len; ++i) {
        for (int j = 0; j <= bagSize; ++j) {
            if (j < weight[i-1]) dp[i][j] = dp[i-1][j];
            else if (j == weight[i-1]) dp[i][j] = true;
            else if (weight[i-1] < j &amp;&amp; weight[i-1]  + q >= j) dp[i][j] = true;
            else dp[i][j] = dp[i-1][j - weight[i-1]];
            if (j == bagSize &amp;&amp; dp[i][j]) return true;
        }
    }
    return dp[len][bagSize];
}
int main(void) 
{
    int t;
    cin >> t;
    while (t--) {
        int bagSize, n, q;
        cin >> bagSize >> n >> q;
        vector<int> weight(n);
        for (int i = 0; i < n; ++i) cin >> weight[i];
        if (isValid(weight, bagSize, q)) cout << &quot;YES&quot; << endl;
        else cout << &quot;NO&quot; << endl;
    }
}
全部评论

相关推荐

2025-12-28 16:32
重庆邮电大学 Java
程序员花海:1.技能放最后,来面试默认你都会,技能没啥用 2.实习写的看起来没啥含金量,多读读部门文档,包装下 接LLM这个没含金量 也不要用重构这种 不会给实习生做的 3.抽奖这个还是Demo项目,实际在公司里面要考虑策略,满减,触发点,触发规则 库存 之类的,不是这个项目这么简单 4.教育背景提前,格式为 教育背景 实习 项目 技能 自我评价
简历被挂麻了,求建议
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务