红黑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);
*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1190438.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在Mac上畅玩iOS应用:PlayCover完全使用手册

如何在Mac上畅玩iOS应用&#xff1a;PlayCover完全使用手册 【免费下载链接】PlayCover Community fork of PlayCover 项目地址: https://gitcode.com/gh_mirrors/pl/PlayCover 还在为Apple Silicon Mac无法运行心仪的iOS游戏而困扰&#xff1f;想要在大屏幕上体验《原神…

FinBERT详解

FinBERT 是一种专门针对金融领域文本优化的 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;变体&#xff0c;由 Yi Yang 等人开发&#xff0c;旨在提升在金融语境下的自然语言理解能力&#xff0c;尤其在情感分析、ESG 分类、前瞻性陈述…

基于Springboot+Vue的企业数据资产登记系统(源码+lw+部署文档+讲解等)

课题介绍 本课题针对企业数据资产分散无序、登记流程不规范、权属界定模糊、生命周期管控缺失、数据价值难以挖掘等痛点&#xff0c;设计并实现基于SpringbootVue的企业数据资产登记系统&#xff0c;构建集数据资产梳理、登记备案、分类归档、权限管控、生命周期管理于一体的全…

如何让经典游戏在现代Windows系统上实现完美局域网对战

如何让经典游戏在现代Windows系统上实现完美局域网对战 【免费下载链接】ipxwrapper 项目地址: https://gitcode.com/gh_mirrors/ip/ipxwrapper 还记得那些年我们通宵达旦玩《红色警戒2》、《魔兽争霸II》的时光吗&#xff1f;这些承载着青春记忆的经典游戏&#xff0c…

2026年郑州喷涂机服务商TOP5推荐:钢结构喷涂机、油漆喷涂机、防腐油漆喷涂机、无气喷涂机、双组份喷涂机、气动喷涂机、品牌适配、场景覆盖与务实服务之选 - 海棠依旧大

随着中原地区工业制造、建筑装修及防腐工程领域的品质升级,喷涂设备的适配性、可靠性及配套服务已成为保障施工效率与涂装质量的核心要素。郑州作为区域工业重镇与交通枢纽,喷涂设备市场需求旺盛,但各类服务商良莠不…

基于Springboot+Vue的前后端分离的宠物服务平台系统(源码+lw+部署文档+讲解等)

课题介绍本课题针对宠物服务行业供需对接低效、服务流程不规范、宠物档案管理零散、养宠知识获取不畅等痛点&#xff0c;设计并实现基于SpringbootVue前后端分离的宠物服务平台系统&#xff0c;构建集宠物服务预约、健康管理、用品选购、知识分享于一体的综合性宠物服务平台。系…

WechatBakTool:一键解密微信聊天记录的智能备份神器

WechatBakTool&#xff1a;一键解密微信聊天记录的智能备份神器 【免费下载链接】WechatBakTool 基于C#的微信PC版聊天记录备份工具&#xff0c;提供图形界面&#xff0c;解密微信数据库并导出聊天记录。 项目地址: https://gitcode.com/gh_mirrors/we/WechatBakTool 在…

如何突破元数据管理瓶颈:ExifToolGUI实战应用指南

如何突破元数据管理瓶颈&#xff1a;ExifToolGUI实战应用指南 【免费下载链接】ExifToolGui A GUI for ExifTool 项目地址: https://gitcode.com/gh_mirrors/ex/ExifToolGui 你是否曾经面对数百张照片&#xff0c;却无法快速定位特定拍摄地点&#xff1f;或者在批量处理…

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

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

基于Springboot+Vue的旅游信息咨询网站的设计与实现(源码+lw+部署文档+讲解等)

课题介绍本课题针对传统旅游信息分散、咨询渠道单一、出行规划低效、用户互动不足等痛点&#xff0c;设计并实现基于SpringbootVue的旅游信息咨询网站&#xff0c;构建集信息查询、咨询服务、行程规划、互动分享于一体的综合性旅游服务平台。系统采用Springboot框架搭建高效稳定…

Umi-OCR实战指南:从基础配置到高阶优化的效率倍增技巧

Umi-OCR实战指南&#xff1a;从基础配置到高阶优化的效率倍增技巧 【免费下载链接】Umi-OCR Umi-OCR: 这是一个免费、开源、可批量处理的离线OCR软件&#xff0c;适用于Windows系统&#xff0c;支持截图OCR、批量OCR、二维码识别等功能。 项目地址: https://gitcode.com/GitH…

VirtualMonitor虚拟显示器:突破物理限制,打造无限工作空间

VirtualMonitor虚拟显示器&#xff1a;突破物理限制&#xff0c;打造无限工作空间 【免费下载链接】VirtualMonitor 项目地址: https://gitcode.com/gh_mirrors/vi/VirtualMonitor 还在为单一屏幕无法满足多任务处理需求而困扰&#xff1f;VirtualMonitor虚拟显示器为您…

如何快速上手thuthesis:Overleaf云端写作的完整指南

如何快速上手thuthesis&#xff1a;Overleaf云端写作的完整指南 【免费下载链接】thuthesis LaTeX Thesis Template for Tsinghua University 项目地址: https://gitcode.com/gh_mirrors/th/thuthesis thuthesis作为清华大学官方LaTeX模板&#xff0c;结合Overleaf云端平…

ExifToolGUI终极指南:快速掌握元数据管理与GPS定位技巧

ExifToolGUI终极指南&#xff1a;快速掌握元数据管理与GPS定位技巧 【免费下载链接】ExifToolGui A GUI for ExifTool 项目地址: https://gitcode.com/gh_mirrors/ex/ExifToolGui ExifToolGUI作为专业的元数据管理工具&#xff0c;为摄影爱好者和内容创作者提供了完整的…

基于Springboot+Vue的美食分享平台系统(源码+lw+部署文档+讲解等)

课题介绍本课题针对美食爱好者分享渠道分散、食谱获取杂乱、互动交流不足、美食探店信息滞后等痛点&#xff0c;设计并实现基于SpringbootVue的美食分享平台系统&#xff0c;构建集食谱分享、美食探店、互动交流、食材推荐于一体的综合性美食服务平台。系统采用Springboot框架搭…

小米音乐Docker实战指南:轻松打造全屋智能音乐系统[特殊字符]

小米音乐Docker实战指南&#xff1a;轻松打造全屋智能音乐系统&#x1f3b5; 【免费下载链接】xiaomusic 使用小爱同学播放音乐&#xff0c;音乐使用 yt-dlp 下载。 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic 还在为小爱音箱的音乐资源发愁吗&#…

DLSS Swapper完全指南:5步掌握游戏画质升级核心技术

DLSS Swapper完全指南&#xff1a;5步掌握游戏画质升级核心技术 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 还在为游戏画面模糊、帧率不稳定而烦恼吗&#xff1f;DLSS Swapper作为专业的游戏画质优化工具&#xff…