当前位置: 首页 > wzjs >正文

大帮手网站建设关键词搜索工具app

大帮手网站建设,关键词搜索工具app,南通市做网站,网站要设置哪些栏目题目描述 小明的老师准备组织一次班级活动。班上一共有 n 名 (n 为偶数) 同学,老师想把所有的同学进行分组,每两名同学一组。为了公平,老师给每名同学随机分配了一个 n 以内的正整数作为 id,第 i 名同学的 id 为 ai。 老师希望通…
题目描述

        小明的老师准备组织一次班级活动。班上一共有 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;} 

细节:为了避免重复计算,所以当一个数出现次数大于等于两次时需要做标记。 

http://www.dtcms.com/wzjs/411541.html

相关文章:

  • 铜山区建设局局网站周保春福州seo优化排名推广
  • 做网站电销人工智能培训班收费标准
  • 深圳网站制作公司平台网络营销师报名官网
  • 聊城做网站的公司策划互联网运营培训课程
  • 网站设计现状企业建站用什么好
  • 营销型网站设计服务百度手机助手下载2021新版
  • 政府网站建设安全企业培训心得体会
  • 襄阳教育网站建设浙江关键词优化
  • 水利工程建设监理网站网站优化的方法与技巧
  • 网站设计与规划作业青岛网站seo服务
  • 苏州市郭巷建设局网站免费的网络推广渠道
  • 高校建设主流网站安卓优化软件
  • 保定网站seo搜索引擎营销优化策略有哪些
  • 如何查看网站开发源码网站免费网站免费
  • 做宣传单用什么网站找图片素材广告推广平台哪个好
  • 哈尔滨网站建设推广公司宁宁网seo
  • 佛山哪个做网站的好搜索引擎的工作原理有哪些
  • 制作网站登录东莞搜索优化十年乐云seo
  • 外贸网站建设海外推广漳州seo网站快速排名
  • 邵阳seoseo软件安卓版
  • 免费ui设计网站搜索引擎优化的要点
  • 个人简历表模板电子版南宁网站seo优化公司
  • 网站详情页用哪个软件做烟台seo
  • 厦门seo排名扣费西安seo服务商
  • 计算机网络动态网站建设深圳正规seo
  • 备案用网站建设方案windows优化大师怎么用
  • 免费数据源网站怎么快速推广app
  • 福州做网站公司排名在线外链
  • 烟台网站建设服务seo工作内容
  • 关于公司建设网站的意义网站查询工具