蓝桥杯 班级活动

news/2025/3/31 22:30:47/

问题描述

小明的老师准备组织一次班级活动。班上一共有 n 名同学(n 为偶数),老师想把所有同学进行分组,每两名同学一组。

为了公平,老师给每名同学随机分配了一个 n 以内的正整数作为 id,第 i 名同学的 ida_i

老师希望通过更改若干名同学的 id,使得对于任意一名同学 i,有且仅有另一名同学 jid 与其相同(即 a_i = a_j)。

请问老师最少需要更改多少名同学的 id


输入格式

共 2 行:

  • 第 1 行:一个正整数 n(偶数)。
  • 第 2 行:n 个由空格隔开的整数 a_1, a_2, ..., a_n

输出格式

  • 输出 1 行,一个整数,表示最少需要更改多少名同学的 id

样例输入

4
1 2 2 3

样例输出

1

样例说明

只需要将 a_1 改为 3,或者将 a_3 改为 1,即可满足每个 id 出现恰好两次。


评测用例规模与约定

  • 对于 20% 的数据,保证 n ≤ 10^3
  • 对于 100% 的数据,保证 n ≤ 10^5
#include<bits/stdc++.h>
#include<stdio.h>using namespace std;int n, a = 0, b = 0, r, ans = 0;
vector<int> arr;int main() {scanf("%d", &n);arr = vector<int>(n);for (int i = 0; i < n; i++) {scanf("%d", &arr[i]);}sort(arr.begin(), arr.end());for (int i = 0; i < n;) {r = i;while(r < n && arr[r] == arr[i]) r++;if (r - i > 2) a += (r - i - 2);else if (r - i == 1) b++;i = r;}if (a >= b) {ans += b;a -= b;ans += a;}else {ans += a;b -= a;ans += b / 2;}cout << ans;return 0;
}

思路解析

我的理解是贪心算法

对于多出来的,也就是出现次数大于2的,一定要修改一次,如果不修改,则会和前面两个一对矛盾,因为只能有两个一样。

对于少的,不够的,可以修改可以不修改,可以让多出来的和它一组,也可以让其他少的和它一组。

贪心策略就是尽量让多的和少的一组,如果还剩下多的,这些多的全部再修改一次变成其他数,如果剩下少的,只要修改n / 2次,因为他们本来就不重复


http://www.ppmy.cn/news/1584078.html

相关文章

C#基础学习(八)终章 C#中的结构体

假如你要用数据记录一个人&#xff0c;你觉得要记录些什么&#xff0c;身高&#xff0c;体重&#xff0c;名字等。那两个人呢&#xff0c;他是不是也有这样的特征&#xff0c;那我们是不是就可以用一种数据类型将他们共有的特征提取出来&#xff0c;这就是我们今天讲的结构体。…

智能制造:自动化焊装线的数字化设计

通过建设焊装车间生产线智能制造系统&#xff0c;致力于打造一个智能化、绿色环保的工厂&#xff0c;不仅提高生产效率&#xff0c;还将节能减排与环保理念深入到生产流程的每一环节&#xff0c;推动制造业向更高的智能化与绿色化方向迈进。 项目目标 智能制造及绿色工厂的打造…

大数据分析与挖掘实训室总体介绍

一、实训室建设目的与意义 大数据分析与挖掘实训室的建设旨在满足当前社会对大数据专业人才的迫切需求。随着大数据技术在各个行业的广泛应用&#xff0c;如金融、医疗、电商等领域&#xff0c;企业对具备数据采集、预处理、分析与挖掘以及数据可视化能力的专业人才需求激增。…

(C语言)指针运算 习题练习1.2(压轴难题)

在上一张已经练习了三道习题&#xff0c;小试牛刀了&#xff0c;那么在本章在来几题&#xff0c;练练手。&#xff08;习题三是压轴难题&#xff09; 习题一 int main() {int aa[2][5] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };int* ptr1 (int*)(&aa 1);int* ptr2 (int*)…

香港电讯企业托管服务,助企业实现高效IT管理与运营

随着企业数字化转型的加速&#xff0c;IT基础设施的复杂性也随之增加。与此同时&#xff0c;流程保障缺失、混合办公和混合云模式、不断增加的IT需求、人力负担和运营成本的增加&#xff0c;企业如何应对这些挑战&#xff1f;为此&#xff0c;香港电讯推出的企业托管服务&#…

横扫SQL面试——事件流处理(峰值统计)问题

横扫SQL面试 &#x1f4cc; 事件流处理&#xff08;峰值统计&#xff09;问题 “会议室预定冲突怎么查&#xff1f; &#x1f50d; 服务器瞬时负载如何算&#xff1f;&#x1f3a2; 健身房的‘人挤人’高峰究竟出现在几点&#xff1f;&#x1f3c3;‍♂️” 这些看似毫不相干…

【持续集成和持续部署】

大致流程&#xff1a; 提交代码--拉取下来新代码并自动构建与部署--应用接口探活--执行自动化测试--输出自动化测试报告 一、持续集成&#xff08;Continuous Integration&#xff0c;CI&#xff09; 持续集成是一种软件开发实践&#xff0c;开发团队成员频繁地将代码集成到…

react native 0.72.5集成react-navigation

新项目需要集成react navigation直接集成了react navigation最新版本7.x安卓运行项目的时候遇到报错generateCodegenArtifactsFromSchema Failed排查问题原因&#xff1a;发现node_modules/react-native/codegen/package.json里面的version是0.77.0&#xff08;当前时刻最新的R…