news 2026/6/10 17:10:39

红黑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/10 13:41:36

WinBtrfs v1.9终极体验:Windows平台Btrfs驱动深度解析

WinBtrfs v1.9终极体验&#xff1a;Windows平台Btrfs驱动深度解析 【免费下载链接】btrfs WinBtrfs - an open-source btrfs driver for Windows 项目地址: https://gitcode.com/gh_mirrors/bt/btrfs 作为一名长期在Windows系统上使用Btrfs文件系统的技术爱好者&#xf…

作者头像 李华
网站建设 2026/6/10 11:22:03

如何免费快速下载整个网站?WebSite-Downloader终极离线浏览方案

如何免费快速下载整个网站&#xff1f;WebSite-Downloader终极离线浏览方案 【免费下载链接】WebSite-Downloader 项目地址: https://gitcode.com/gh_mirrors/web/WebSite-Downloader 还在为重要网站突然无法访问而烦恼吗&#xff1f;担心在线学习资料某天会消失不见&a…

作者头像 李华
网站建设 2026/6/10 11:21:11

探索 Simulink 中的 VIENNA 三电平整流电路及双闭环滑模变结构控制策略

simulink的VIENNA三电平整流电路&#xff0c;采用双闭环滑模变结构控制策略&#xff0c;滑模面选择基于功率平衡选择。 开关管驱动使用SVPWM控制算法。 输出电压电流稳定可调&#xff0c;可。最近在研究电力电子相关的内容&#xff0c;发现了 Simulink 里超有意思的 VIENNA 三电…

作者头像 李华
网站建设 2026/6/9 22:41:01

Steam创意工坊下载完全指南:轻松获取模组的终极解决方案

Steam创意工坊下载完全指南&#xff1a;轻松获取模组的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 还在为无法下载Steam创意工坊的精彩模组而烦恼吗&#xff1…

作者头像 李华
网站建设 2026/6/9 21:59:05

解锁Windows文件管理新境界:QTTabBar标签页功能完全攻略

解锁Windows文件管理新境界&#xff1a;QTTabBar标签页功能完全攻略 【免费下载链接】qttabbar QTTabBar is a small tool that allows you to use tab multi label function in Windows Explorer. https://www.yuque.com/indiff/qttabbar 项目地址: https://gitcode.com/gh_…

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

Mac鼠标优化终极指南:免费工具让第三方鼠标发挥专业级性能

Mac鼠标优化终极指南&#xff1a;免费工具让第三方鼠标发挥专业级性能 【免费下载链接】mac-mouse-fix Mac Mouse Fix - A simple way to make your mouse better. 项目地址: https://gitcode.com/gh_mirrors/ma/mac-mouse-fix 还在为Mac上第三方鼠标功能受限而烦恼吗&a…

作者头像 李华