题目大意
有n只袜子,有至多k种颜色,给你m天的安排,要你穿两只,要保证两只袜子同色。每只袜子可以至多染一次色。
问最小的染色次数。

思路:
讲真的一开始没想到用搜索,事实上题目可以这么理解,我的第i只袜子可能与之前之后都有联系,那么袜子最后肯定会分成几个堆,堆之间没关系。给个数据
10 3 2
2 1 1 2 1 1 2 1 2 2
4 10
9 3
5 7
三天间就没什么联系。那么每次搜索一下,搜索到的袜子标记一下。
需要更改的袜子数就等于所有堆各自的袜子总数减去同一颜色的最大数!

好好消化一下就会发现很巧妙!
上代码:

#include<bits/stdc++.h>
#define input freopen("input.txt","r",stdin)
using namespace std;
vector<int>s[200002];
int n,m,k;
int tot,maxx;
int value[200002],v[200002];  //v是标记,value是袜子的颜色值
map<int,int>p;   //记录每堆最大的颜色数 void dfs(int pos)
{if(v[pos]) return ;  //如果碰到标记的结束 v[pos]=1;tot++;  //总数增加 maxx=max(maxx,++p[value[pos]]);   //注意里面有个先++啊! for(int i=0;i<s[pos].size();i++)  //跑他的 连接点搜索(堆内的搜索) dfs(s[pos][i]);
} int main()
{input;int i,j;long long ans;while(cin>>n>>m>>k){memset(v,0,sizeof(v));for(i=1;i<=n;i++) s[i].clear(); for(i=1;i<=n;i++) cin>>value[i];for(i=1;i<=m;i++){int l,r;cin>>l>>r;s[l].push_back(r);//双向的图 s[r].push_back(l);}for(ans=0,i=1;i<=n;i++){tot=maxx=0;//这两步! 一定要初始化 p.clear();dfs(i); ans+=(tot-maxx);} cout<<ans<<endl;}return 0;
}

Codeforces 731C Socks By Assassin相关推荐

  1. CodeForces 731C Socks

    //并查集的应用 #include <bits/stdc++.h> using namespace std; const int N = 2e5 + 5; int f[N]; int co ...

  2. 【CodeForces - 731C】Socks(并查集,思维)

    题干: Arseniy is already grown-up and independent. His mother decided to leave him alone for m days an ...

  3. 集训队每周一赛2020-03-13(构造+找规律+字符串+并查集)

    第三次周赛 A 飞 Gym 102416C 题解 B 流 CodeForces 1316B 题解 C 直 Gym 102535G 题解 D 下 CodeForces 1312C 题解 E 三 Code ...

  4. Codeforces Round #376 (Div. 2) C. Socks

    可能英语水平比较差,这个题我刚读起来是懵逼的. C. Socks time limit per test 2 seconds memory limit per test 256 megabytes i ...

  5. 【Codeforces】A3组刷题记录( 43 / 43 )

    目录 A1. Combination Lock A2. Summer Camp rzt A3. Soft Drinking ★A4. Coder ★A5. GukiZ and Contest ★A6. ...

  6. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

  7. 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)

    题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...

  8. 【codeforces 812C】Sagheer and Nubian Market

    [题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...

  9. CodeForces 获得数据

    针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...

  10. codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...

    题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...

最新文章

  1. 计算机与网络技术基础试题及答案,计算机与网络技术基础试题及答案(2003年10月)...
  2. 通过反射实现IOC功能
  3. java中do loop的使用_Java中do-while循环——通过示例学编程(11)
  4. 壹佰文章总结| 关于ASP.NETCore的分享之路
  5. 基于单链表的生产者消费者问题
  6. mysql执行计划查看_查看Mysql执行计划
  7. 还在维护吗_你的模具生锈了吗?来了解一下这些防锈维护事项
  8. Redis学习---(8)Redis 哈希(Hash)
  9. ipv6单播地址包括哪两种类型_IPv6基础介绍
  10. 引用使用_引用公文标题时,“”与《》正确使用法则
  11. C#字符串转Json,Json解析
  12. C# QQ连连看外挂(内存版)源代码
  13. 深入浅出人脸识别原理
  14. 网宿cdn api 刷新缓存函数
  15. 力扣 417. 太平洋大西洋水流问题
  16. 企业微信和个人微信区别到底有哪些
  17. HTC ONE X刷ruu的详细刷机教程
  18. VMware 12 Exception 0xc0000005
  19. nginx cache 总结
  20. v12.2.8 released版本介绍--2019_7

热门文章

  1. android * 工程模式,什么是Android手机的工程模式
  2. c语言入门之项目2.3——利息计算器
  3. Python - 使用ffmepg批量转换某个文件夹以及所有子文件夹下所有的视频,修改其帧率/码率/分辨率到另一文件夹,并保留原有文件夹结构
  4. pdf照片显示正常打印时被翻转_2020年广东二级建造师准考证打印常见问题
  5. 得到互质数的个数——轻松认识欧拉函数
  6. Windows Server 2012 之NIC组合(NIC Teaming)介绍
  7. 从西直门立交桥谈IT架构与重构
  8. Genlovy_Hoo大神的杰作
  9. win10去掉快捷方式小箭头_强迫症狂喜!一招去除Win10桌面图标小箭头
  10. ES系列:字段类型不对时,如何保存文档到索引