题目地址:HDU 2473

这题曾经碰到过,没做出来。

。如今又做了做,还是没做出来。

。、、

这题涉及到并查集的删除操作。想到了设一个虚节点,可是我把虚节点设为了要删除的点的父节点。一直是栈溢出,目測是无限递归了。

看了看别人的做法。 原来仅仅要建一个映射就能够了,虚节点是作为的新的映射,每次删除一个点,就把他映射到一个新的点上去。

代码例如以下:

#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
#include <queue>
#include <map>
#include <set>
#include <algorithm>using namespace std;
int bin[2100000], _hash[2100000], d[2100000];
int find1(int x)
{return bin[x]==d[x]?d[x]:bin[x]=find1(bin[x]);
}
void join(int x, int y)
{int f1=find1(x);int f2=find1(y);if(f1!=f2)bin[f2]=f1;
}
int main()
{int n, m, i, cnt, num=0, sum, a, b;char c;while(scanf("%d%d",&n,&m)!=EOF&&n+m){num++;sum=0;cnt=n;for(i=0; i<2000000; i++){bin[i]=i;d[i]=i;}while(m--){getchar();scanf("%c",&c);if(c=='M'){scanf("%d%d",&a,&b);join(a,b);}else{scanf("%d",&a);bin[a]=cnt;d[a]=cnt++;}}memset(_hash,0,sizeof(_hash));for(i=0; i<n; i++){a=find1(d[i]);if(!_hash[a]){sum++;_hash[a]=1;}//printf("%d ",a);}//puts("");printf("Case #%d: %d\n",num,sum);}return 0;
}

转载于:https://www.cnblogs.com/lxjshuju/p/7220359.html

HDU 2473 Junk-Mail Filter(并查集的删除操作)相关推荐

  1. Almost Union-Find UVA - 11987(并查集的删除操作)

    题意:求出每个集合的元素个数,及总和,给出三个操作: 1 将含有a元素和b元素的集合合并:2 将a元素放入含有b元素的集合中:3 输出a元素所在集合的元素个数及总和: 思路:正常并查集,与并查集元素的 ...

  2. 树形结构 —— 并查集 —— 并查集的删除操作

    对于删除操作,在完美的并查集中(所有节点都直接连接在根节点上),理论上只要把要删除的节点的上级重新指向自己就可以了. 但是实际情况中,并查集形成的树的形态都是不可预估的,如果直接将一个节点指向自己可能 ...

  3. hdu 3234 Exclusive-OR 题解(并查集,思维)

    该死的期末复习终于结束了... 暑假来了\color{#ff0000}{暑假来了}暑假来了!!! 所以我就珂以非常开心的写博客了. 原题链接: hdu 题意简述 多组数据.你有一个没有确定的数列.有一 ...

  4. *【HDU - 2473】Junk-Mail Filter (并查集--删点操作)

    题干: Recognizing junk mails is a tough task. The method used here consists of two steps:  1) Extract ...

  5. How Many Answers Are Wrong HDU - 3038(带权并查集经典题,满满的都是注释)

    How Many Answers Are Wrong HDU - 3038  点击打开链接 题意:现在有n个数(你并不知道这n个数是什么),m次查询,每次查询给出u,v,w.表示从第u个数到第v个数的 ...

  6. hdu 1232 畅通工程 最小生成树 并查集

    1232的连接:http://acm.hdu.edu.cn/showproblem.php?pid=1232 #include <iostream>#include <cstdio& ...

  7. HDU 1213 How Many Tables 并查集 水~

    http://acm.hdu.edu.cn/showproblem.php?pid=1213 果然是需要我陪跑T T,禽兽工作人员还不让,哼,但还是陪跑了~ 啊,还有呀,明天校运会终于不用去了~耶耶耶 ...

  8. HDU 1272 小希的迷宫 (并查集)

    小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  9. hdu 1811 Rank of Tetris (并查集+拓扑排序)

    Problem - 1811 感觉这题的并查集以及拓扑排序并不难,但是做题的时候必须理解到矛盾(CONFLICT)与不确定(UNCERTAIN)直接的优先关系. 做这题的时候,构图什么的很简单,就是没 ...

最新文章

  1. 绩效管理领域对管理者的任务和能力要求
  2. 最全面的百度地图JavaScript离线版开发
  3. SQL server与Oracle触发器的创建与使用
  4. C运行时库和标准C++库
  5. P3811-[模板]乘法逆元【线性求逆元】
  6. Oracle 数据文件 实际使用量 计算说明
  7. 【NOIP-2017PJ】图书管理员
  8. 2017-2018-1 JAVA实验站 第四、五周作业
  9. 光伏窗性能研究(2)——光伏窗性能研究方法和过程
  10. 微信卡券 java_微信卡券功能JAVA版(PS : 其實無關乎什么語言拉 :) )
  11. JS实现将数字金额转换为大写人民币汉字的方法
  12. Kettle-时间维度的生成
  13. HIT-2022年春季学期《软件构造》Lab 1实验心得
  14. html5的video在IOS端默认全屏和黑屏问题
  15. java.lang.ClassCastException: [Ljava.lang.Long; cannot be cast to java.util.List
  16. 挑战华为社招:2021Java高级面试题汇总解答
  17. 面试 | 什么是内部类?成员内部类、静态内部类、局部内部类和匿名内部类的区别及作用?
  18. php mysql md5加密_php 用户密码MD5加密存入数据库问题//
  19. swagger-ui导出word接口文档
  20. 奥扬科技IPO被终止注册:年营收8亿 苏伟持有67.5%股权

热门文章

  1. spring boot:java.lang.IllegalStateException异常
  2. 反恐精英出现服务器消息,cs你已被禁用次服务器 | 手游网游页游攻略大全
  3. 张岩 重庆大学 计算机学院,扬帆起,乘东风,气芳华——记重庆大学计算机学院新老生交流会...
  4. qt 实现拖动矩形角度_手机上如何使用CAD角度标注功能?
  5. 曼彻斯特解密_曼彻斯特编码解码方法与流程
  6. Gym 101221I [WF2014]Sensor Network (二分图匹配)
  7. 云耀服务器切换系统,云耀云服务器重装操作系统
  8. jsp 知乎_JSP
  9. Html img 标签
  10. Jmeter测试Mysql数据库-入门篇