Codeforces_731_C
http://codeforces.com/problemset/problem/731/C
并查集,然后找每个集合里颜色的最大数量,求集合中元素数量-这个最大数量,最后总数相加即答案。
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std; int n,m,k,c[],l,r,pre[];
vector<int> v[]; int findd(int x)
{
int root = x;
while(pre[root] != root) root = pre[root];
int i = x,j;
while(pre[i] != root)
{
j = pre[i];
pre[i] = root;
i = j;
}
return root;
}
void join(int a,int b)
{
int x = findd(a),y = findd(b);
if(x != y) pre[x] = y;
} int main()
{
scanf("%d%d%d",&n,&m,&k);
for(int i = ;i <= n;i++)
{
scanf("%d",&c[i]);
pre[i] = i;
}
for(int i = ;i <= m;i++)
{
scanf("%d%d",&l,&r);
join(l,r);
}
for(int i = ;i <= n;i++) v[findd(i)].push_back(c[i]);
int ans = ;
for(int i = ;i <= n;i++)
{
if(!v[i].size()) continue;
sort(v[i].begin(),v[i].end());
int endd = v[i].size(),maxx = ;
for(int j = ,now = ;j < endd;++now,j = now)
{
while(now < endd- && v[i][now+] == v[i][j]) now++;
maxx = max(maxx,now-j+);
}
ans += endd-maxx;
}
printf("%d\n",ans);
return ;
}
Codeforces_731_C的更多相关文章
随机推荐
- 数据库并发处理 - 上的一把好"锁"
为什么要有锁? 我们都是知道,数据库中锁的设计是解决多用户同时访问共享资源时的并发问题.在访问共享资源时,锁定义了用户访问的规则.根据加锁的范围,MySQL 中的锁可大致分成全局锁,表级锁和行锁三类. ...
- C# 数独求解算法。
前言 数独是一种有趣的智力游戏,但是部分高难度数独在求解过程中经常出现大量单元格有多个候选数字可以填入,不得不尝试填写某个数字然后继续推导的方法.不幸的是这种方法经常出现填到一半才发现有单元格无数可填 ...
- ASP.Net Core 3.0 中使用JWT认证
JWT认证简单介绍 关于Jwt的介绍网上很多,此处不在赘述,我们主要看看jwt的结构. JWT主要由三部分组成,如下: HEADER.PAYLOAD.SIGNATURE HEADER包 ...
- 倍增笔记ST表
https://noip-1253948194.cos.ap-beijing.myqcloud.com/%E5%80%8D%E5%A2%9E-ST%E7%AE%97%E6%B3%95.mp4 1123 ...
- Java 使用Scanner时的NoSuchElementException异常
做实验时设计了一个类,在类中的两个不同函数中分别创建了两个Scanner对象,并且在各个函数的结尾使用了close()方法,结果在运行时产生了NoSuchElementException异常. 实验的 ...
- 树上主席树 - 查询树链上第K大
Description 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权.其中lastans是上一个询问的答案,初始 ...
- nrm npm nvm
1.nvm: node version manager node版本管理器 可以来回切换node.js版本号,而直接使用node的.msi安装则版本比较固定,无法实现node版本的自行切换nvm安装方 ...
- kubernetes concepts (一)
Concepts The Concepts section helps you learn about the parts of the Kubernetes system and the abstr ...
- 使用log4j把日志写到mysql数据库
log4j可以支持将log输出到文件,数据库,甚至远程服务器,本教程以mysql数据库为例来讲解: 作者:Jesai 没有伞的孩子,只能光脚奔跑! 1.数据库设计 数据库表 表4-1日志表(log) ...
- spring cloud的配置
注解篇 @EnableEurekaServer 注解启动一个服务注册中心提供给其他应用进行对话 @EnableDiscoveryClient 激活Eureka中的DiscoveryClient实现 配 ...