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

LC 3479(2100) 线段树二分 水果成篮

题目
题目:
给你两个长度为 n 的整数数组,fruits 和 baskets,其中 fruits[i] 表示第 i 种水果的 数量,baskets[j] 表示第 j 个篮子的 容量。
你需要对 fruits 数组从左到右按照以下规则放置水果:
每种水果必须放入第一个 容量大于等于 该水果数量的 最左侧可用篮子 中。
每个篮子只能装 一种 水果。
如果一种水果 无法放入 任何篮子,它将保持 未放置。
返回所有可能分配完成后,剩余未放置的水果种类的数量。

思路:
我们需要应用一种数据和结构,可以高效地进行区间查询(查找最左边的符合条件的篮子)和更改(一个篮子装完水果后就没用了) ,那么显然是线段树。
直接套用线段树模板即可,注意下标。

代码:

const int MAXN = 1e5+2;
int tree[MAXN * 4];
const int inf = 1e9;
class Solution {
public:int numOfUnplacedFruits(vector<int>& fruits, vector<int>& baskets) {int n = fruits.size();auto build = [&](this auto&& self, int x, int l, int r) {if (l == r) {tree[x] = baskets[l - 1];return;}int mid = (l + r) >> 1;self(x * 2, l, mid);self(x * 2 + 1, mid + 1, r);tree[x] = max(tree[x * 2], tree[x * 2 + 1]);};auto change = [&](this auto &&self, int x, int l, int r, int cp, int cv) {if (l > cp || r < cp) return;if (l == r) {tree[x] = cv;return;}int mid = (l + r) >> 1;if (cp <= mid) self(x * 2, l, mid, cp, cv);else self(x * 2 + 1, mid + 1, r, cp, cv);tree[x] = max(tree[x * 2], tree[x * 2 + 1]);};auto query = [&](this auto&& self, int x, int l, int r,  int qv) {if (tree[x] < qv) return -1;if (l == r) return l;int mid = (l + r) >> 1;if (tree[x * 2] >= qv) {int q = self(x * 2, l, mid, qv);if (q >= 0) return q;}return self(x * 2 + 1, mid + 1, r, qv);};build(1, 1, n);int ans = 0;for (int i = 0; i < n; ++i) {int k = query(1, 1, n, fruits[i]);if (k < 0) {ans++;}else {change(1, 1, n, k, -inf);}}return ans;}
};
http://www.gsyq.cn/news/70367.html

相关文章:

  • 2025年上海办公室装修公司口碑排名:迎湖办公室装修实力可靠
  • Scrum 冲刺博客_4
  • 第二天项目
  • 2025年西南五大诚信的加拿大移民企业推荐,看哪家售后服务优
  • 2025年中国仿石砖十大龙头厂家推荐:看哪家产品质量好?
  • 实用指南:Qt-VLC: 一个集成VLC的开源跨平台媒体播放库
  • Scrum3 冲刺博客
  • Scrum2 冲刺博客
  • 2025年五大行星减速机厂家推荐排行榜,专业供应商与大型厂家
  • 2025年诚信的便携式粒子计数器销售厂家排行榜,尘埃粒子计数器/0.1um尘埃粒子计数器/28.3L尘埃粒子计数器粒子计数器销售厂家电话
  • 第3篇:Alpha阶段Day3冲刺日志
  • iStoreos/openWRT给不同IP的设备分配不同的网关/旁路由
  • 2025年度知名的房产律师推荐TOP5:看哪家胜诉率高
  • 上海商务宴请指南:这家黑珍珠素食餐厅如何兼得美味与格调?
  • 2025年上海中式餐厅精选:探寻东方美学与地道风味的盛宴
  • 2025年上海必访禅意餐厅指南:体验闹市中的静谧与治愈
  • 2025年上海必吃创意餐厅盘点:这5家高档美食地标重新定义奢华体验
  • 【2025最新】上海旅游美食攻略:五家不可错过的素食餐厅推荐清单
  • 防雨箱品牌推荐榜,充电桩防雨箱/开关防雨箱/监控防雨箱/防雨箱盖/不锈钢防雨箱供应厂家排行
  • 海泡石哪家质量好?哪家技术实力强?求推荐
  • 2025年12月京东e卡兑换,正规回收公司盘点:安全靠谱品牌红榜发布!
  • 深聊口碑不错的美国移民企业,看看哪家实力强
  • 北京专业打离婚官司的律所推荐与服务特点解析
  • 哪家无人机培训机构可以考证?行业机构选择参考
  • 团队博客 5:“租易 - 快捷租房管理小程序” Beta 阶段计划与改进方案
  • vscode正则匹配
  • await执行顺序和事件循环调度
  • 陈列装置公司哪家有实力?国内优质企业推荐
  • 高端陈列道具公司哪家好?行业优质服务商推荐
  • 【文章管理系统团队】Alpha阶段Scrum冲刺第6天随笔