蓝桥杯班级活动
题目描述
小明的老师准备组织一次班级活动。班上一共有 n 名 (n 为偶数) 同学,老师想把所有的同学进行分组,每两名同学一组。为了公平,老师给每名同学随机分配了一个 n 以内的正整数作为 id,第 i 名同学的 id 为 ai。
老师希望通过更改若干名同学的 id 使得对于任意一名同学 i,有且仅有另一名同学 j 的 id 与其相同 (ai=aj)。请问老师最少需要更改多少名同学的 id?
输入格式
输入共 2行。第一行为一个正整数 n。第二行为 nn 个由空格隔开的整数 a1,a2,...,ana1,a2,...,an。
输出格式
输出共 1 行,一个整数。
输入样例:
4
1 2 2 3
输出样例:
1
思路:
题目要求有且仅有两个数相同,因此,我们要分别记录只出现一次的数和出现超过两次的数,如果只有出现一次的数,且其个数为c1,那么需要修改c1/2;如果只有出现超过两次的数,且其个数为c2,那么修改次数为c2,显然可以发现,修改只出现一次的数会更简单;那么如果c1,c2同时存在时,当c2>=c1,则要修改c1+(c2-c1)=c2次,反之,则要修改c2+(c1-c2)/2次
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e6;
int n,C=0,c1=0,c2=0;
int c[N],a[N];
bool v[N];
signed main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin>>n;for(int i=0;i<n;i++){cin>>a[i];c[a[i]]++;}for(int i=0;i<n;i++){if(c[a[i]]>2&&!v[a[i]]){c2+=c[a[i]]-2;v[c2]=true;}if(c[a[i]]==1) c1++;}if(c1>=c2) C=c2+(c1-c2)/2;if(c2>c1) C=c2;cout<<C<<endl;return 0;}
细节:为了避免重复计算,所以当一个数出现次数大于等于两次时需要做标记。
相关文章:
蓝桥杯班级活动
题目描述 小明的老师准备组织一次班级活动。班上一共有 n 名 (n 为偶数) 同学,老师想把所有的同学进行分组,每两名同学一组。为了公平,老师给每名同学随机分配了一个 n 以内的正整数作为 id,第 i 名同学的 id 为 ai。 老师希望通…...
PHP支付宝--转账到支付宝账户
官方参考文档: https://opendocs.alipay.com/open/62987723_alipay.fund.trans.uni.transfer?sceneca56bca529e64125a2786703c6192d41&pathHash66064890 可以使用默认应用,也可以自建新应用,此处以默认应用来讲解【默认应用默认支持…...
2.18寒假
今天在题单中看了搜索。 解析:两个一维数组,用于表示上下左右四个方向的偏移量,分别对应 x 轴和 y 轴的偏移,遍历四个方向(左、右、下、上),对于每个方向,检查目标位置是否未走过&am…...
Docker 与持续集成 / 持续部署(CI/CD)的集成(二)
五、代码示例与解释 (一)Dockerfile 示例 以下是一个简单的基于 Python Flask 应用的 Dockerfile 示例: # 使用Python 3.10-slim作为基础镜像 FROM python:3.10-slim # 设置工作目录 WORKDIR /app # 复制项目文件到容器内的工作目录 C…...
SQL Server的安装和简单使用
目录 一、SQL Server 1.1、简介 1.2、安装包 二、安装SQL Server 2.1、双击安装包 2.2、选择自己想要安装的位置 2.3、点击安装 2.4、安装完成之后会出现以下页面,按照序号依次点击 2.5、不用管密钥,点击下一步 2.6、选择【我接受】 2.7、是否…...
c/c++蓝桥杯经典编程题100道(19)汉诺塔问题
汉诺塔问题 ->返回c/c蓝桥杯经典编程题100道-目录 目录 汉诺塔问题 一、题型解释 二、例题问题描述 三、C语言实现 解法1:递归法(难度★) 解法2:迭代法(难度★★★) 四、C实现 解法1࿱…...
Linux 信号量
Linux 信号量 一、信号量基础概念1.1 同步机制的核心需求1.2 信号量的核心原理1.3 信号量类型对比 二、实战代码解析2.1 共享内存与信号量结合示例2.2 信号量类实现要点 三、关键实现细节分析3.1 初始化三步骤3.2 SEM_UNDO机制3.3 原子操作保证 四、进阶应用场景4.1 生产者-消费…...
Qt开发①Qt的概念+发展+优点+应用+使用
目录 1. Qt的概念和发展 1.1 Qt的概念 1.2 Qt 的发展史: 1.3 Qt 的版本 2. Qt 的优点和应用 2.1 Qt 的优点: 2.2 Qt 的应用场景 2.3 Qt 的应用案例 3. 搭建 Qt 开发环境 3.1 Qt 的开发工具 3.2 Qt SDK 的下载和安装 3.3 Qt 环境变量配置和使…...
向量库(Vector Database)
向量库 1. 向量库发展史 早期阶段(2000s) 基于关系型数据库的扩展(如 PostgreSQL 的向量插件)。简单相似度计算(如欧氏距离、余弦相似度)。 专用向量库的兴起(2010s) FAISS…...
torchsparse安装过程的问题
1、项目要求torchsparse githttps://github.com/mit-han-lab/torchsparse.gitv1.4.0 2、torch1.8.1cu111 nvcc--version:11.1 这个版本的cuda匹配的gcc、g经常是7.5。设置为7.5. (这个gcc、g版本修改不一定,可以先进行后面的,…...
【核心算法篇七】《DeepSeek异常检测:孤立森林与AutoEncoder对比》
大家好,今天我们来深入探讨一下《DeepSeek异常检测:孤立森林与AutoEncoder对比》这篇技术博客。我们将从核心内容、原理、应用场景等多个方面进行详细解析,力求让大家对这两种异常检测方法有一个全面而深入的理解。 一、引言 在数据科学和机器学习领域,异常检测(Anomaly…...
Win10环境使用零讯ZeroNews内网穿透实现Deepseek对外服务
Win10环境使用零讯ZeroNews内网穿透实现Deepseek对外服务 前言 之前笔者已经在Win10环境搭建好了Ollama、DeepSeek、Open WebUI、Dify等组件,成功实现了私有化部署及内网访问: https://lizhiyong.blog.csdn.net/article/details/145505686 https://l…...
CUDA 安装 一直卡在Installing Nsight Visual Studio Edition
最近在安装CUDA的时候,CUDA 安装 一直卡在Installing Nsight Visual Studio Edition,莫名的一直卡在安装进行中这儿,过很久都没进度,如图 后面重新下载了12.6的进行安装也是如此 无论是local还是network,都是这样。度…...
Softing线上研讨会 | 自研还是购买——用于自动化产品的工业以太网
| 线上研讨会时间:2025年1月27日 16:00~16:30 / 23:00~23:30 基于以太网的通信在工业自动化网络中的重要性日益增加。设备制造商正面临着一大挑战——如何快速、有效且经济地将工业以太网协议集成到其产品中。其中的关键问题包括:是否只需集成单一的工…...
STM32 定时器产生定周期方法
目录 背景 程序 第一步、使能PCLK1外设时钟编辑 第二步、时基单元配置 第三步、配置NVIC(设置定时中断优先级)编辑 第四步、使能溢出中断 第五步、使能定时器 第六步、填写中断处理函数(ISR) 背景 在单片机开发当中&…...
解锁机器学习核心算法 | 支持向量机:机器学习中的分类利刃
一、引言 在机器学习的庞大算法体系中,有十种算法被广泛认为是最具代表性和实用性的,它们犹如机器学习领域的 “十大神器”,各自发挥着独特的作用。这十大算法包括线性回归、逻辑回归、决策树、随机森林、K - 近邻算法、K - 平均算法、支持向…...
青少年编程与数学 02-009 Django 5 Web 编程 21课题、部署
青少年编程与数学 02-009 Django 5 Web 编程 21课题、部署 一、软件开发部署部署的主要内容部署的步骤部署的方式部署的环境 二、Django项目部署1. 准备工作2. 代码部署3. 配置Django项目4. Web服务器和应用服务器配置5. 安全和性能优化6. 监控和日志管理7. 测试和上线 三、在U…...
ARM系统源码编译OpenCV 4.10.0(包含opencv_contrib)
因项目部署在ARM系统上,需要编译一个arm版本的opencv-4.10.0(带opencv_contrib)版本。 若需要Linux系统下源码安装OpenCV,可参考:https://blog.csdn.net/qq_45445740/article/details/142770493?spm1001.2014.3001.55…...
cmake:定位Qt的ui文件
如题。在工程中,将h,cpp,ui文件放置到不同文件夹下,会存在cmake找不到ui文件,导致编译报错情况。 cmake通过指定文件路径,确保工程找到ui文件。 标识1:ui文件保存路径。 标识2:添加…...
(leetcode 1749 前缀和)1749. 任意子数组和的绝对值的最大值
核心题意 任意子数组和 的绝对值的最大值实际上是前缀和之间的差的最大值 建立前缀和数组 如果我们只考虑前缀和的最大值和最小值之差,那么就能够获得一个最大的子数组和的绝对值。因为任意一个子数组的和 prefix[j1] - prefix[i],它的绝对值是最大当…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...
C语言中提供的第三方库之哈希表实现
一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...
Qt 事件处理中 return 的深入解析
Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...
