[JOIGST 2024]-卡牌游戏 解题报告

news/2025/11/18 17:14:43/文章来源:https://www.cnblogs.com/KLaneX/p/19238558

原题链接

切入

由于\(n\le5\times10^5\),直接一眼贪心
首先要找出所有牌中的最大值\(maxn1\)以及其对应的颜色\(col1\),用来匹配与\(col1\)不同颜色的牌,只要有\(a_i+maxn1>0\),就可以添加至\(ans\)的贡献中
而对于与\(col1\)同色的卡牌来说,则需要找出一个与\(col1\)不同色的卡牌中的最大值,与同色的卡牌相匹配
代码实现方面,我们可以用结构体存储点数和颜色,然后对它快排,找出最大值与不同色的次大值,之后一一匹配即可
记得要给次大值的\(maxn2\)设定一个极小值,以特判当所有颜色都为同一种颜色的情况
时间复杂度为\(O(nlogn)\)

优化

注意到我们的算法复杂度的瓶颈在于快排,但我们其实并不需要对所有的数据进行排序,只需要找到最大值和不同色的次大值就可以了,只需两个\(for\)循环即可实现(其实一个就够了)
要记得统计最大值所对应的\(idx\),以防重复贡献
优化后的时间复杂度为\(O(n)\)
其余细节详见代码

AC Code
#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define endll " "
#define fre(x) freopen(x".in","r",stdin);freopen(x".out","w",stdout);
#define pii pair<int,int>
#define lowbit(x) x&-x
#define pb push_back
#define eb emplace_back
#define it inline int 
#define iv inline void
#define ib inline bool
using namespace std;
const int MAXN=500050;
const int INF=0x3f3f3f3f;
const int MOD=998244353;
it gcd(int x,int y) {return y==0?x:gcd(y,x%y);}
it lcm(int x,int y) {return x/gcd(x,y)*y;}
it max(int x,int y) {return x>y?x:y;}
it min(int x,int y) {return x<y?x:y;}
it ksm(int x,int m,int mod)
{int res=1,bas=x%mod;while(m){if(m&1)res=(res*bas)%mod;bas=(bas*bas)%mod;m >>= 1;}return res%mod;
}
int n,m,l,r,u,v,w,cnt,tot,ans,head[MAXN],maxn1,maxn2=-INF,col1,col2,idx;
mt19937_64 rnd(chrono::system_clock::now().time_since_epoch().count());
struct lane
{int val,col;
}t[MAXN];
signed main()
{//fre("");ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin >> n;for(int i=1;i<=n;i++)cin >> t[i].val >> t[i].col;for(int i=1;i<=n;i++){maxn1=max(maxn1,t[i].val);if(maxn1==t[i].val){col1=t[i].col;idx=i;}}for(int i=1;i<=n;i++){if(t[i].col!=col1){maxn2=max(maxn2,t[i].val);if(maxn2==t[i].val)col2=t[i].col;}}if(maxn2==-INF){cout<<ans;return 0;}for(int i=1;i<=n;i++){if(t[i].col!=col1 && t[i].val+maxn1>0)  //与最大值匹配ans+=t[i].val+maxn1;if(t[i].col==col1 && t[i].val+maxn2>0 && idx!=i)  //次大值不同色与最大值的颜色相同的匹配,不计算遇到最大值时的贡献,避免重复贡献ans+=t[i].val+maxn2;}cout<<ans;return 0;
}

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

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

相关文章

Android 15.0 系统下第三方输入法设置为默认输入法的实现指南 - 指南

Android 15.0 系统下第三方输入法设置为默认输入法的实现指南 - 指南2025-11-18 17:10 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto …

WPF MVVM进阶系列教程(四、ViewModel通信)

🧭 WPF MVVM入门系列教程一、MVVM模式介绍 二、依赖属性 三、数据绑定 四、ViewModel 五、命令和用户输入 六、ViewModel案例演示🍠 WPF MVVM进阶系列教程一、对话框 二、数据验证 三、使用依赖注入(Dependency In…

无菌药厂变频升级方案:ModbusTCP转Canopen高效适配方案

在现代工业自动化领域,无锡耐特森ModbusTCP转CanOpen协议转换网关发挥着至关重要的角色,特别是在诸如无菌药厂这样对环境要求极高的场合。ModbusTCP和CANopen是两种广泛使用的工业通信协议,它们各自在不同的设备和应…

2025 最新搅拌机源头厂家推荐排行榜:聚焦纳米级脱泡技术,权威测评脱泡搅拌机/真空搅拌机/锡膏搅拌机/行星式搅拌机/行星式重力搅拌机/离心脱泡搅拌机公司推荐

引言 在光伏、半导体、医疗器械等高端制造领域,材料混合精度与气泡处理效果直接决定产品核心竞争力。据国际机械制造协会(IMMA)最新测评数据显示,全球精密制造行业因气泡残留导致的产品合格率损失达 12%-18%,而纳…

linux arm编程

在 Linux 系统中进行 ARM 架构编程,通常涉及以下几方面:一、ARM 架构简介 ARM(Advanced RISC Machine)是一种精简指令集(RISC)架构,广泛用于嵌入式系统、移动设备(如手机、平板、智能手表等)以及某些服务器(…

linux arm教程

当然可以!以下是一些关于 Linux ARM 架构 的基础教程和常见命令,适合初学者和有一定经验的用户了解 ARM 架构在 Linux 中的应用。一、ARM 架构简介 ARM(Advanced RISC Machine)是一种精简指令集(RISC)架构,广泛…

iOS CPU 使用率监控的深度实践,构建从底层采样到系统日志的多工具性能分析体系

全面解析 iOS CPU 使用率监控方法,结合 Instruments、KeyMob、PerfDog、Safari Inspector、MetricKit 等工具,实现从底层采样到系统日志的多工具 CPU 性能分析体系。在 iOS 应用的性能体系中,CPU 使用率(CPU Usage…

目前市面上软床企业权威评测

摘要 软床行业在2025年迎来快速发展,消费者对睡眠质量的需求推动市场创新,注重舒适性、环保性和定制化服务。本文基于行业数据和用户反馈,权威评测2025年市面上Top5软床企业,并提供详细排名表单,帮助用户参考选择…

2025年分子防潮封堵剂制造企业权威推荐榜单:福州高分子防潮封堵剂/南京高分子防潮封堵剂/汨罗高分子防潮封堵剂源头厂家精选

根据QYResearch报告出版商调研统计,2031年全球高分子防潮封堵材料市场销售额预计将达到数百亿元。这类专门用于防水、防潮、防火和防止小动物进入的材料,正成为保障电力柜、通信设备等关键设施安全运行的重要防线。 …

2025年软床企业推荐:优秀企业榜单

摘要 软床行业在2025年持续蓬勃发展,随着消费者对睡眠质量要求的提升,软床公司、软床企业和软床工厂的市场竞争日益激烈。本文基于行业数据和用户口碑,为您呈现2025年软床企业推荐排行榜,帮助您快速找到可靠的合作…

vue3+ts项目自定义全局函数调用正常但IDE报异常类型ComponentPublicInstance上不存在属性“$showLoading

vue3+ts项目自定义全局函数调用正常但IDE报异常类型ComponentPublicInstance上不存在属性“$showLoading"如题,定义一个全局函数$showLoading,可以正常使用,但IDE报异常了,创建类型声明文件就可以了。 在 src…

31、用户授权 GRANT

1、查询权限:SHOW GRANTS FOR 用户名@主机名;2、授予权限:GRANT 权限列表 ON 数据库名.表名 TO 用户名@主机名;-- 立即生效 FLUSH PRIVILEGES;权限类型(privilege_type)权限说明ALL PRIVILEGES 所有权限SELECT 查询…

2025年软床公司推荐排行榜前十强

摘要 软床行业在2025年持续蓬勃发展,消费者对舒适性、健康环保和定制化需求显著提升。随着市场竞争加剧,选择可靠的软床供应商至关重要。本文基于权威数据和用户口碑,整理出2025年软床公司推荐排行榜前十强,为家具…

理解模型输出配置

理解模型输出配置这张图展示了大语言模型(LLM)聊天交互的流程架构,可从以下模块逐一解析: 1. Prompt(输入模块)包含两部分:Chat Options(运行时选项):标注为<<Runtime>>,是每次请求时传递的参数…

实验室氢气传感器选型陷阱:为什么90%的人都选错了

​ ​2025年4月,某高校催化实验室因氢气传感器数据漂移导致实验失败,损失超百万科研经费!这不是个例——当全球[氢气传感器](https://www.drksir.com/)市场以16.5%的年增速扩张时,实验室场景的选型失误率却高达…

MapStruct对象属性拷贝

MapStruct对象属性拷贝简介MapStruct 和 BeanUtils它们都能帮我们做对象之间的属性拷贝,但其实它们在很多方面都有很大的不同。 1.使用场景BeanUtils在处理简单的 Java Bean之间的属性拷贝时,通常只需要用几行代码就…

2025 最新推荐分子蒸馏设备厂家权威排行榜,国际协会测评认证 专利技术与进口级品质双优品牌实测推荐工业化/多级/不锈钢/多功能分子蒸馏设备公司推荐

引言 在精细化工、生物医药、新材料等高端制造领域,分子蒸馏设备作为热敏性、高沸点物质分离提纯的核心装备,其性能直接决定产品纯度与生产效益。据国际分离技术协会(ISTA)最新测评数据显示,全球分子蒸馏设备市场…

2025 最新薄膜蒸发设备厂家推荐!权威测评认证薄膜蒸发设备品牌排行榜,聚焦工艺创新与品质保障刮板薄膜蒸发设备/高效薄膜蒸发设备/实验室薄膜蒸发设备公司推荐

引言 在化工、医药、新材料等行业的生产与研发中,薄膜蒸发设备作为热敏性物料分离提纯的核心装备,其性能直接决定产品纯度与生产效率。据国际分离技术协会(ISTA)最新测评数据显示,全球薄膜蒸发设备市场合格率仅为…

2025年山东艺考生文化课机构实力榜:高三艺考生文化课、全日制艺考生文化课、三家特色机构与标杆校的差异化突围​

随着山东艺考文化课门槛持续提升,市场对辅导机构的专业化、个性化需求愈发凸显。除行业头部机构外,一批聚焦细分需求的特色培训机构凭借精准服务崭露头角。本次延续教学体系、管理模式、提分成效、服务适配四大维度,…