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 18:34:53

同城货运系统小程序+公众号+H5(附源码)

温馨提示&#xff1a;文末有资源获取方式~~在物流行业蓬勃发展与居民生活需求日益增长的背景下&#xff0c;货运搬家系统成为提高运输效率、降低运营成本的重要工具。一套成熟的货运搬家系统需要整合多方面技术&#xff0c;实现从订单管理到运输执行的全流程数字化。接下来&…

作者头像 李华
网站建设 2026/6/10 16:14:43

开源H5编辑器h5maker:零代码打造专业级移动页面的终极指南

开源H5编辑器h5maker&#xff1a;零代码打造专业级移动页面的终极指南 【免费下载链接】h5maker h5编辑器类似maka、易企秀 账号/密码&#xff1a;admin 项目地址: https://gitcode.com/gh_mirrors/h5/h5maker 在移动互联网时代&#xff0c;H5页面已成为品牌传播和用户互…

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

终极解决方案:3分钟搞定Windows苹果设备驱动安装

终极解决方案&#xff1a;3分钟搞定Windows苹果设备驱动安装 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.com/gh_mirrors/…

作者头像 李华
网站建设 2026/6/10 19:47:02

本地 Markdown 编辑器也能公网协作:doocs/md + cpolar 实战指南

文章目录1 项目 doocs/md 介绍2 安装Nodejs环境2.1 下载Nodejs安装程序2.2 安装Nodejs程序2.3 验证Nodejs是否安装2.4 设置国内淘宝镜像源3 下载本地部署doocs/md项目3.1 将项目下载至本地3.2 解压doocs/md项目3.3 安装依赖和启动doocs/md项目4 将网站穿透至公网&#xff08;cp…

作者头像 李华
网站建设 2026/6/3 1:39:49

OpenGlass智能眼镜终极指南:25元打造你的AI助手

OpenGlass智能眼镜终极指南&#xff1a;25元打造你的AI助手 【免费下载链接】OpenGlass Turn any glasses into AI-powered smart glasses 项目地址: https://gitcode.com/GitHub_Trending/op/OpenGlass 还在为智能眼镜动辄数千元的价格望而却步吗&#xff1f;OpenGlass…

作者头像 李华
网站建设 2026/6/10 19:29:52

解锁网易云音乐NCM加密文件:ncmdump使用全攻略

解锁网易云音乐NCM加密文件&#xff1a;ncmdump使用全攻略 【免费下载链接】ncmdump 转换网易云音乐 ncm 到 mp3 / flac. Convert Netease Cloud Music ncm files to mp3/flac files. 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdump 你是否曾经遇到过这样的情况&…

作者头像 李华