1、CF #376 (Div. 2)    C. Socks       dfs

2、题意:给袜子上色,使n天左右脚袜子都同样颜色。

3、总结:一开始用链表存图,一直TLE test 6

(1)如果需要高效的随即存取,而不在乎插入和删除的效率,使用vector 。

(2)如果需要大量的插入和删除,而不关心随即存取,则应使用list 。

  1. #include<bits/stdc++.h>
  2. #define F(i,a,b) for (int i=a;i<b;i++)
  3. #define FF(i,a,b) for (int i=a;i<=b;i++)
  4. #define mes(a,b) memset(a,b,sizeof(a))
  5. #define INF 0x3f3f3f3f
  6. #define LL long long
  7. #define pb push_back
  8. using namespace std;
  9. const int N=,MAX=;
  10.  
  11. int n,m,k,vis[N],col[N],sum,sum1,maxn;
  12. map<int ,int >M;
  13. vector<int >G[N];
  14.  
  15. void dfs(int u)
  16. {
  17. vis[u]=; M[col[u]]++;
  18. //sum++; //直接在map::M上遍历时间会优化一点
  19. //if(maxn<M[col[u]]) maxn=M[col[u]];
  20. for(int v:G[u]) if(!vis[v]) { //才发现for可以这样简写
  21. dfs(v);
  22. }
  23. }
  24.  
  25. int main()
  26. {
  27. scanf("%d%d%d",&n,&m,&k);
  28. FF(i,,n) scanf("%d",&col[i]);
  29. int l,r;
  30. FF(i,,m) {
  31. scanf("%d%d",&l,&r);
  32. G[l].pb(r); G[r].pb(l);
  33. }
  34. mes(vis,); sum1=;
  35. FF(i,,n) if(!vis[i]) {
  36. M.clear();
  37. sum=maxn=;
  38. dfs(i);
  39. for(auto p:M){
  40. sum+=p.second;
  41. if(maxn<p.second) maxn=p.second;
  42. }
  43. sum1+=(sum-maxn);
  44. }
  45. cout<<sum1<<endl;
  46.  
  47. return ;
  48. }

CF #376 (Div. 2) C. dfs的更多相关文章

  1. CF #375 (Div. 2) D. bfs

    1.CF #375 (Div. 2)  D. Lakes in Berland 2.总结:麻烦的bfs,但其实很水.. 3.题意:n*m的陆地与水泽,水泽在边界表示连通海洋.最后要剩k个湖,总要填掉多 ...

  2. CF #374 (Div. 2) D. 贪心,优先队列或set

    1.CF #374 (Div. 2)   D. Maxim and Array 2.总结:按绝对值最小贪心下去即可 3.题意:对n个数进行+x或-x的k次操作,要使操作之后的n个数乘积最小. (1)优 ...

  3. CF #374 (Div. 2) C. Journey dp

    1.CF #374 (Div. 2)    C.  Journey 2.总结:好题,这一道题,WA,MLE,TLE,RE,各种姿势都来了一遍.. 3.题意:有向无环图,找出第1个点到第n个点的一条路径 ...

  4. CF #371 (Div. 2) C、map标记

    1.CF #371 (Div. 2)   C. Sonya and Queries  map应用,也可用trie 2.总结:一开始直接用数组遍历,果断T了一发 题意:t个数,奇变1,偶变0,然后与问的 ...

  5. CF #365 (Div. 2) D - Mishka and Interesting sum 离线树状数组

    题目链接:CF #365 (Div. 2) D - Mishka and Interesting sum 题意:给出n个数和m个询问,(1 ≤ n, m ≤ 1 000 000) ,问在每个区间里所有 ...

  6. CF #365 (Div. 2) D - Mishka and Interesting sum 离线树状数组(转)

    转载自:http://www.cnblogs.com/icode-girl/p/5744409.html 题目链接:CF #365 (Div. 2) D - Mishka and Interestin ...

  7. CF #405 (Div. 2) B. Bear ad Friendship Condition (dfs+完全图)

    题意:如果1认识2,2认识3,必须要求有:1认识3.如果满足上述条件,输出YES,否则输出NO. 思路:显然如果是一个完全图就输出YES,否则就输出NO,如果是无向完全图则一定有我们可以用dfs来书边 ...

  8. CF R639 div 2 E Quantifier Question 数学 dfs 图论

    LINK:Quantifier Question 题面过长 引起不适 读题花了好长时间 对于 和 存在符合不是很熟练 导致很懵逼的做完了. 好在还算很好想.不过wa到了一个坑点上面 自闭一大晌 还以为 ...

  9. Codeforces Round #381 (Div. 2) D dfs序+树状数组

    D. Alyona and a tree time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

随机推荐

  1. LoadRunner 函数之lr_xml_get_values

    简单实例如 char *xml_input = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>&q ...

  2. 深入理解javascript原型和闭包(6)——继承

    为何用“继承”为标题,而不用“原型链”? 原型链如果解释清楚了很容易理解,不会与常用的java/C#产生混淆.而“继承”确实常用面向对象语言中最基本的概念,但是java中的继承与javascript中 ...

  3. 2Struts2基础----青软S2SH(笔记)

  4. [Head First设计模式]生活中学设计模式——外观模式

    系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式— ...

  5. JUnit4 中@AfterClass @BeforeClass @after @before的区别对比

    JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation: @Before:初始化方法   对于每一个测试方法都要执行一次(注意与BeforeCla ...

  6. WP8.1 RT 生命周期详解‏‏‏‏‏‏‏‏‏‏‏‏‏

                应用状态关系转换图 根据此“应用状态关系转换图”.有以下: 三个状态: NotRunning:未运行    Running:运行中   Suspended:挂起 三个事件: A ...

  7. Android高手速成--第三部分 优秀项目

    主要介绍那些Android还不错的完整项目,目前包含的项目主要依据是项目有意思或项目分层规范比较好.Linux项目地址:https://github.com/torvalds/linuxAndroid ...

  8. 2012 Multi-University Training Contest 9 / hdu4389

    2012 Multi-University Training Contest 9 / hdu4389 打巨表,实为数位dp 还不太懂 先这样放着.. 对于打表,当然我们不能直接打,这里有技巧.我们可以 ...

  9. 马化腾称春节前推出微信小程序

    腾讯马化腾在第二届深商大会“互联与时代”论坛上透露,会在2017年春节前推出微信小程序.在谈到“互联网+”.开放生态等话题时,马化腾表示,腾讯从过去5年来,从封闭的环境变成一个开放的环境,变成一个真正 ...

  10. Mac Pro 资源管理器 Double Commander“个性化设置” 备份

    操作系统自带的资源管理器,总是有些别扭的地方,在 Windows 系统下,我一般用 Total Commander(破解版)来作为替代品.现在换为 Mac 系统,自带的 Finer 也不怎么好用,连最 ...