Codeforces 731C 并查集
来源:互联网 发布:玲珑网游加速器mac 编辑:程序博客网 时间:2024/04/27 00:36
题意:给出n只袜子的,最多k个颜色,m天,每天都要穿某两只袜子,不能让某一天穿不同颜色的袜子,问至少改变多少只袜子的颜色。
思路:把在同一天穿的袜子用并查集放到一起,然后找出最多的那种颜色,size-max即为这堆袜子至少要改的次数。
#include<bits/stdc++.h>using namespace std;#define mod 1000000007#define PI acos(-1.0)#define INF 0x3f3f3f3ftypedef long long LL;typedef unsigned long long ULL;const int maxn=200005;int ans;int n,m,k;int c[maxn];int l,r;int F[maxn];vector<int>v[maxn];int Find(int x){ return x==F[x]?x:F[x]=Find(F[x]);}void Union(int a,int b){ int t1=Find(a); int t2=Find(b); if(t1!=t2){ F[t1]=t2; }}int main(){ scanf("%d%d%d",&n,&m,&k); for(int i=1;i<=n;i++){ scanf("%d",c+i); F[i]=i; } for(int i=1;i<=m;i++){ scanf("%d%d",&l,&r); Union(l,r); } ans=0; for(int i=1;i<=n;i++){ v[Find(i)].push_back(c[i]); } for(int i=1;i<=n;i++){ if(v[i].size()<=1)continue ; int sz=0,MX=0; map<int,int>mp; for(int j=0;j<v[i].size();j++){ mp[v[i][j]]++; MX=max(MX,mp[v[i][j]]); sz++; } ans+=sz-MX; } printf("%d\n",ans); return 0;}
0 0
- codeforces 731C 并查集+贪心
- Codeforces 731C 并查集
- CodeForces - 731C Socks (并查集)
- codeforces 731C (并查集 水)
- codeforces 731C 并查集
- CodeForces 731C Socks 并查集
- Codeforces 731C Socks 并查集
- codeforces 731c Socks 并查集
- Codeforces 731C Socks(并查集)
- CodeForces 731C - Socks(并查集)
- CodeForces 731C-Socks(联通图 并查集)
- CodeForces 731 C.Socks(贪心+并查集)
- CodeForces 218C 并查集
- 【CodeForces】445C Civilization 并查集
- codeforces 650C (并查集)
- codeforces 722C (并查集)
- [CodeForces#376 C Socks] 并查集
- Codeforces 745C 并查集+贪心
- Bootstrap样式
- Android 开发之为ActionBar 添加Actionbar Button
- 创建矩阵、向量;散点拟合
- fzu 2041 Checker 枚举 模拟
- JavaWeb学习之Servlet的学习(二)
- Codeforces 731C 并查集
- IOS 之 Swift教程(二) -入门语法(注释)
- 土巴兔2017校招前端开发
- iOS-nsoperration的简单操作
- 栀子花如何修剪
- PHP.8-HTML+CSS(二)-HTML详解
- 几种常见的排序算法及实现(三)
- Gradle sync failed: Could not find method android() for arguments [build_aj7feyco0x5e5hj3g6wttaj6$_
- echarts学习1----格式整理以及地图入门