news 2026/6/23 9:28:11

P6365 [传智杯 #2 初赛] 众数出现的次数(C++)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
P6365 [传智杯 #2 初赛] 众数出现的次数(C++)

原题链接:P6365 [传智杯 #2 初赛] 众数出现的次数 - 洛谷

题目描述

传智专修学员的课堂上,为了活跃气氛,并巩固位运算的知识,同学们玩起了一个游戏。

班级里有 n(n≤106) 名同学,每位同学都获得了两张卡,红卡或者黑卡。每张卡上都有一个不超过 109 的非负整数。第 i 位同学手里红卡数字是 ai​ ,黑卡数字是 bi​。

现在需要每位同学出牌。每位同学可以直接将红卡上的数字打出,或者将自己的红卡上的数字和自己黑卡数字进行按位异或操作后的结果打出。最后老师会收集所有同学打出的数字。

这些数字中出现次数最多的数字是众数。在所有同学合作的最优策略下,我们希望众数对应数字出现的次数尽可能多。请问出现次数最多的数字是多少呢?

输入格式

第一行,一个正整数 n。

接下来 n 行,其中第 i 行时非负整数 ai​,bi​ 代表第 i 名同学手上红卡和黑卡的数字。

输出格式

一个整数,表示答案。如果有多个解,请输出最小的那个。

输入输出样例

输入

4 21 9 28 9 28 3 17 4

输出

21

说明/提示

样例解释:

众数出现次数最多是 3 次,有如下两种方法:

  • 1 号同学直接出红卡,2 号同学出红黑异或,3 号同学随便出,4 号同学出红黑异或。这样 1,2,4 号同学都可以打出 21。
  • 1 号同学出红黑异或,2 号同学直接出红卡,3 号同学直接出红卡,4 号同学随便出。这样 1,2,3 号同学都可以打出 28。

所以 21 和 28 都是出现次数最多的众数,因为最多可以出现 3 次,不存在出现 4 次的方案。但是由于要求如果有多解输出小的,请输出 21。

以下是我的题解,利用了哈希表键值不能重复的特性统计了每个数字出现的次数,从而达到解题的目的。

#include <bits/stdc++.h> #include <unordered_map> using namespace std; int main() { int n; cin >> n; unordered_map<long long, int> count; for (int i = 0; i < n; i++) { long long a, b; cin >> a >> b; long long result = a ^ b;//计算两个数字异或的结果 if (a == result) { count[a]++; } else { count[a]++; count[result]++; } } int max = 0; long long min = 1000000001; for (auto& i : count) {//由于哈希表中的数据没有顺序的概念,所以使用auto来遍历整个哈希表 long long num = i.first;//对应前面long long类型数据 int cnt = i.second;//对应数据出现的次数 if (cnt > max) { max = cnt; min = num; } else if (cnt == max && num < min) { min = num;//当出现次数相同时,选择较小的那个数字 } } cout << min << endl; return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 0:57:14

Open-AutoGLM脚本编写全攻略(专家级编码规范曝光)

第一章&#xff1a;Open-AutoGLM脚本编写规范概述在开发和维护 Open-AutoGLM 项目时&#xff0c;统一的脚本编写规范是确保代码可读性、可维护性和协作效率的关键。遵循一致的结构与命名约定&#xff0c;有助于团队成员快速理解逻辑流程&#xff0c;并降低出错概率。命名约定 变…

作者头像 李华
网站建设 2026/6/23 6:54:29

Linly-Talker模型压缩技术揭秘:在消费级显卡上流畅运行

Linly-Talker模型压缩技术揭秘&#xff1a;在消费级显卡上流畅运行技术背景与挑战 在虚拟主播、数字员工和智能客服逐渐走入日常的今天&#xff0c;一个现实问题始终困扰着开发者&#xff1a;如何让复杂的AI数字人系统摆脱对昂贵硬件的依赖&#xff1f;过去&#xff0c;构建一个…

作者头像 李华
网站建设 2026/6/20 6:58:44

揭秘Open-AutoGLM自定义脚本编写难点:5大关键规范你必须知道

第一章&#xff1a;揭秘Open-AutoGLM自定义脚本的核心理念Open-AutoGLM 是一个面向自动化自然语言处理任务的开源框架&#xff0c;其自定义脚本系统旨在赋予开发者高度灵活的控制能力。通过模块化设计与声明式配置结合&#xff0c;用户能够快速构建、调试并部署复杂的语言模型流…

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

Linly-Talker支持MQTT协议用于物联网通信

Linly-Talker 支持 MQTT 协议用于物联网通信 在智能终端日益渗透日常生活的今天&#xff0c;一个关键问题摆在开发者面前&#xff1a;如何让数字人不只是“能说会动”的演示程序&#xff0c;而是真正融入现实场景、可被远程调度、具备状态感知能力的智能节点&#xff1f;尤其是…

作者头像 李华
网站建设 2026/6/23 3:23:31

Linly-Talker语音活跃度检测避免无效唤醒

Linly-Talker语音活跃度检测避免无效唤醒 在数字人逐渐从影视特效走向日常交互的今天&#xff0c;用户对“像人一样自然对话”的期待越来越高。无论是虚拟主播、银行大厅里的数字员工&#xff0c;还是教育陪练机器人&#xff0c;人们不再满足于机械式的应答——他们希望对方能…

作者头像 李华
网站建设 2026/6/23 11:58:35

Linly-Talker结合SLAM技术实现空间定位交互

Linly-Talker结合SLAM技术实现空间定位交互 在智能展厅里&#xff0c;一位参观者缓缓走近一幅名画。还未开口&#xff0c;画旁的虚拟讲解员便微微转头&#xff0c;面向来人&#xff0c;微笑着说道&#xff1a;“欢迎了解这幅《星月夜》——它创作于1889年……”随着观众绕行观察…

作者头像 李华