news 2026/6/15 13:30:40

红黑set优于heap|损人利己-总价值贪心

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
红黑set优于heap|损人利己-总价值贪心

lc1686

按石头对两人的总价值(a[i]+b[i])降序选,先手优先拿总价值高的石头以最大化双方价值差

简单来说就是既想自己拿得多,又要对手拿的少,那么拿对手分高的虽然自己没+1,但对面-1了啊,四舍五入就相当于自己赚了

所以自己赚的=自己得的(a[i])+ 对面损失的(b[i]),B也是这么想的。

围棋中有句谚语叫「敌之要点即我之要点」,在一处落子既可以加强自己又可以削弱对手

class Solution {
public:
int stoneGameVI(vector<int>& a, vector<int>& b) {
int n = a.size();
vector<int> idx(n);
ranges::iota(idx, 0);
ranges::sort(idx, {}, [&](int i) { return -a[i] - b[i]; });

int diff = 0;
for (int i = 0; i < n; i++) {
diff += i % 2 == 0 ? a[idx[i]] : -b[idx[i]];
}
return (diff > 0) - (diff < 0);
}
};

损人利己的贪心思路

单纯利己不对:如果每个人每次都拿当前自己收益最高的,剩下的石头中对方可能有价值更高的。

单纯损人不对:每次都拿对方收益最高的,但自己收益可能更低。

损人利己:每次拿自己的收益和对面收益加在一起最大的。即 (a[i]+b[i])降序选

lc2336

在需要频繁增删+多次区间/最值查询的场景下,C++ TreeSet( std::set / std::ordered_set )基于红黑树实现O(logn)时间的有序维护与精准查询

优于仅能高效维护堆顶的堆(Heap)

class SmallestInfiniteSet {
public:
SmallestInfiniteSet() {
for (int i = 1; i <= 1000; ++i) {
s.insert(i);
}
}

int popSmallest() {
int x = *s.begin();
s.erase(s.begin());
return x;
}

void addBack(int num)
s.insert(num);

private:
set<int> s;
};

/**
* Your SmallestInfiniteSet object will be instantiated and called as such:
* SmallestInfiniteSet* obj = new SmallestInfiniteSet();
* int param_1 = obj->popSmallest();
* obj->addBack(num);
*/

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 0:36:16

Windows平台ADB和Fastboot驱动一键安装工具完整使用手册

Windows平台ADB和Fastboot驱动一键安装工具完整使用手册 【免费下载链接】Latest-adb-fastboot-installer-for-windows A Simple Android Driver installer tool for windows (Always installs the latest version) 项目地址: https://gitcode.com/gh_mirrors/la/Latest-adb-…

作者头像 李华
网站建设 2026/6/13 15:19:32

音乐解放指南:5分钟解锁QMC加密音频,实现跨平台播放自由

音乐解放指南&#xff1a;5分钟解锁QMC加密音频&#xff0c;实现跨平台播放自由 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 还在为那些被加密的音乐文件而烦恼吗&#…

作者头像 李华
网站建设 2026/6/15 5:40:22

英雄联盟智能辅助系统:Akari工具集深度解析与实战应用

英雄联盟智能辅助系统&#xff1a;Akari工具集深度解析与实战应用 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 在现代电子竞技…

作者头像 李华
网站建设 2026/6/13 1:38:22

基于微信小程序的私房菜定制上门服务系统源码文档部署文档代码讲解等

课题介绍本课题针对私房菜上门服务存在的供需对接低效、定制需求传递不畅、服务流程不规范等痛点&#xff0c;设计并实现一款基于微信小程序的私房菜定制上门服务系统&#xff0c;搭建食客与私房菜厨师高效便捷的服务对接桥梁。系统以微信小程序为前端交互载体&#xff0c;采用…

作者头像 李华
网站建设 2026/6/14 20:13:25

Modbus TCP终极测试指南:工业通信调试完整解决方案

Modbus TCP终极测试指南&#xff1a;工业通信调试完整解决方案 【免费下载链接】ModBusTcpTools 一个Modbus的C#开发示例&#xff0c;运用HslCommunication.dll组件库实现&#xff0c;包含了一个服务端的演示和一个客户端演示&#xff0c;客户端可用于进行Modbus测试&#xff0…

作者头像 李华
网站建设 2026/6/6 6:45:42

深度测评专科生必用8款一键生成论文工具

深度测评专科生必用8款一键生成论文工具 2026年专科生论文写作工具测评&#xff1a;为何需要这份榜单&#xff1f; 随着高校教育的不断深化&#xff0c;专科生在学术写作上的需求日益增长。然而&#xff0c;面对繁重的课程任务和有限的写作经验&#xff0c;许多学生常常陷入“写…

作者头像 李华