当前位置: 首页 > news >正文

小苯的01背包(easy)【牛客tracker 每日一题】

小苯的01背包(easy)

时间限制:1秒 空间限制:256M

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

注:此版本为本题的easy(简单版),与hard(困难版)唯一的不同之处只有数据范围。

小苯有一个容量为k kk的背包,现在有n nn个物品,每个物品有一个体积v vv和价值w ww,他想知道在体积不超过k kk的前提下,他最多能装价值为多少的物品。

本问题中,物品的总体积定义为所装物品的体积的& \&&(按位与),总价值也定义为所装物品的价值的& \&&(按位与)。

(如果不选物品,则价值为0 00,所占体积也为0 00。)

输入描述:

输入包含n + 1 n+1n+1行。
第一行两个正整数n , k ( 1 ≤ n ≤ 2 × 10 3 , 0 ≤ k ≤ 2 × 10 3 ) n,k (1≤n≤2×10^3,0≤k≤2×10^3)n,k(1n2×103,0k2×103),分别表示物品个数和背包容量。
加下来n nn行,每行两个正整数v i , w i ( 0 ≤ v i , w i ≤ 2 × 10 3 ) v_i,w_i (0≤v_i,w_i≤2×10^3)vi,wi(0vi,wi2×103),表示每个物品的体积和价值。

输出描述:

输出包含一行一个整数,表示能装的最大价值。

示例1

输入:

3 1 7 3 10 7 9 6

输出:

2

说明:

选择第一个和第三个物品。
体积为:7 & 9 = 1 7 \& 9=17&9=1
价值为:3 & 6 = 2 3 \& 6=23&6=2。可以证明不存在比2 22更大的价值。

示例2

输入:

3 2 7 3 10 7 9 6

输出:

3

说明:

选择第一个和第二个物品。

解题思路

本题核心是按位贪心枚举+按位与性质验证,解决特殊规则的背包问题。利用按位与运算的单调性:选取的物品越多,价值与体积的按位与结果只会不变或变小,因此采用从大到小枚举目标价值的策略。对于每个枚举的价值,筛选出所有价值按位与能保留该值的物品,计算这些物品体积的按位与结果,若结果≤ ≤背包容量k kk,则该值即为最大可获得价值。该方法无需复杂动态规划,仅通过枚举验证即可求解,时间复杂度极低,完美适配题目数据规模约束。

总结

核心逻辑:利用按位与只减不增的特性,从高到低枚举价值,验证是否存在合法物品子集满足体积限制。
关键操作:逆序枚举价值、筛选匹配物品、计算体积按位与、判断合法性。
效率保障:贪心枚举替代状态转移,极简高效地找到最大价值。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;typedefvector<vector<ll>>vvt;typedefpair<ll,ll>pll;constll N=1e3+10;constll p=1e9+7;constll INF=1e18;constll M=1e6+10;constll mod=998244353;intmain(){ll n,m;cin>>n>>m;vector<ll>v(n+1),w(n+1);for(ll i=1;i<=n;i++)cin>>v[i]>>w[i];for(ll i=2e3;i>=0;i--){ll res=(1<<20ll)-1;for(ll j=1;j<=n;j++){if((w[j]&i)==i)res=res&v[j];}if(res<=m){cout<<i<<endl;return0;}}cout<<0<<endl;return0;}
http://www.jsqmd.com/news/698984/

相关文章:

  • 东阳市杰业木业:性价比高的东阳母婴健康环保板材定制公司 - LYL仔仔
  • 贵州安亿顺废旧物资回收:贵阳废旧设备回收公司 - LYL仔仔
  • 本地 / 云端 / 命令行:OpenClaw 微信部署完整操作
  • 5步掌握ComfyUI InstantID:AI人脸风格迁移的终极指南
  • 成都波艳成笑办公家具:成都中央空调回收哪个公司好 - LYL仔仔
  • Voxtral-4B-TTS-2603多语言落地:跨境电商独立站商品页语音导购(英/法/德/西/意)
  • 突然关机导致k8s集群断开
  • Wi-Fi 7汽车领域应用全景解析:智能座舱的“超高速神经中枢”如何重塑未来出行?
  • 拒绝繁琐表单:HarmonyOS开发华为账号一键登录与身份标识深度破局
  • 防晒红不刺激的防晒霜来了~Leeyo 防晒霜,烈日暴晒不红不刺痛 - 全网最美
  • 机器学习领域被低估的10本实战好书推荐
  • Nim
  • 【限时公开】头部金融级MCP网关核心源码片段(C++20协程+io_uring):3小时重构传统网关实现23倍吞吐跃升
  • 哪家 GEO 优化机构更专业?2026 全国 Top5 优质服务商甄选手册与实力对比 - 速递信息
  • 2026年郑州铝单板与全国氟碳铝单板厂家深度评测:官方联系方式汇总与选购避坑指南 - 优质企业观察收录
  • 2026年郑州铝单板与全国高端幕墙材料深度选购指南|官方渠道直达 - 优质企业观察收录
  • 上海鉴钧电器:奉贤区空调清洗哪家好 - LYL仔仔
  • 收藏备用|2026版 AI Agent Tool Use 机制全解析
  • RWKV7-1.5B-world双语模型效果惊艳展示:中文问候→英文回复全程响应<5秒实测
  • Keras模型保存与加载:JSON、HDF5与Protocol Buffer实践指南
  • Windows下从零跑通PULSE算法:手把手解决dlib安装报错和‘Could not find a face’问题
  • 2026年电缆桥架厂家推荐排行榜:抗震支架/桥架配件/大跨距桥架 - 品牌策略师
  • 从零到一:Windows平台adb环境搭建与Android设备双模通信实战
  • 终极LRC歌词制作指南:如何用歌词滚动姬轻松创建完美同步的歌词
  • 将应用添加到鼠标的右键列表,如何将软件添加到右键菜单中呢?
  • 济南聚鑫打胶服务:靠谱的济南浴室打胶企业 - LYL仔仔
  • 2026年郑州铝单板与蜂窝铝单板采购指南:全国工程商必读的官方对接手册 - 优质企业观察收录
  • 【收藏级】2026年AI大模型系统化学习指南(小白/程序员必看,可直接照搬落地)
  • 成都地区数据中心介绍:中国西部信息中心
  • 关于我一个学期写四篇文献综述