Description

有\(n\)只袜子,\(k\)种颜色,在\(m\)天中,问最少修改几只袜子的颜色,可以使每天要穿的袜子颜色相同。

Input

第一行\(n,m,k\)分别对应题目描述。

接下来\(m\)行每行两个整数\(l_i,r_i\)表示第\(i\)天要穿的两只袜子的编号。

Output

一个整数,代表最小要修改几只袜子的颜色。

首先,对于每一天要穿的袜子,我们加入同一个并查集。(这个很明显吧)

如果有一只袜子需要被穿多次的话,

显然我们会将其染成当前联通块中包含袜子最多的一种颜色。

我们用\(vector\)维护每个联通块中的袜子的颜色。

再开\(vis\)数组维护每种袜子的出现次数。(注意要清空)

每次我们累加的答案就是\(size-mx\)

其中\(size\)为联通块大小,\(mx\)为颜色相同的最多的袜子的个数。

代码

#include<cstdio>
#include<algorithm>
#include<vector>
#include<iostream>
#define R register using namespace std; const int gz=200001; inline void in(R int &x)
{
int f=1;x=0;char s=getchar();
while(!isdigit(s)){if(s=='-')f=-1;s=getchar();}
while(isdigit(s)){x=x*10+s-'0';s=getchar();}
x*=f;
} vector<int>v[gz]; int col[gz],f[gz],n,m,k,ans,vis[gz]; int find(R int x){return f[x]==x?x:f[x]=find(f[x]);} signed main()
{
in(n),in(m),in(k);
for(R int i=1;i<=n;i++)in(col[i]),f[i]=i;
for(R int i=1,x,y;i<=m;i++)
{
in(x),in(y);
R int fa=find(x),fb=find(y);
if(fa==fb)continue;
f[fa]=fb;
}
for(R int i=1;i<=n;i++)
{
R int fa=find(i);
v[fa].push_back(col[i]);
} for(R int i=1;i<=n;i++)
{
R int tmp=v[i].size();
R int mx=0;
if(tmp>1)
{
for(R int j=0;j<tmp;j++)
{
vis[v[i][j]]++;
mx=max(mx,vis[v[i][j]]);
}
for(R int j=0;j<tmp;j++)
vis[v[i][j]]--;
ans+=tmp-mx;
}
}
printf("%d",ans);
}

最新文章

  1. Excel中添加下拉框
  2. Java--常用类summary
  3. java collections
  4. 第二百四十天 how can I 坚持
  5. Hibernate—第一个案例
  6. hibernate 使用in方式删除数据
  7. POJ 1308 Is It A Tree?--题解报告
  8. Typora极简教程
  9. Angularjs启动入口, splash画面,与加快启动的技巧
  10. 阿里八八β阶段Scrum(3/5)
  11. e832. 从JTabbedPane中移动卡片
  12. IOS沙盒机制
  13. &lt;数据结构系列1&gt;封装自己的数组——手写动态泛型数组(简化版ArrayList)
  14. powerdesigner 设置字段显示comment注释
  15. ceph修复osd为down的情况
  16. 重拾C#教程:变量
  17. A bug about RecipientEditTextView
  18. Oulipo(Hash入门第一题 Hash函数学习)
  19. poj3616 Milking Time
  20. ASCII流程图

热门文章

  1. JUnit4.11 理论机制 @Theory 完整解读
  2. Linux产生背景
  3. POJ2112:Optimal Milking(Floyd+二分图多重匹配+二分)
  4. ERROR: Found lingering reference file hdfs
  5. rman备份与异机恢复
  6. DOM操作的一个小坑
  7. openstack中region、az、host aggregate、cell 概念
  8. 【POJ 1719】 Shooting Contest (二分图匹配)
  9. 端到端测试,protractor测试的教程
  10. bzoj 2120 线段树套平衡树