HDU 2473 Junk-Mail Filter(并查集的删除操作)
题目地址: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(并查集的删除操作)相关推荐
- Almost Union-Find UVA - 11987(并查集的删除操作)
题意:求出每个集合的元素个数,及总和,给出三个操作: 1 将含有a元素和b元素的集合合并:2 将a元素放入含有b元素的集合中:3 输出a元素所在集合的元素个数及总和: 思路:正常并查集,与并查集元素的 ...
- 树形结构 —— 并查集 —— 并查集的删除操作
对于删除操作,在完美的并查集中(所有节点都直接连接在根节点上),理论上只要把要删除的节点的上级重新指向自己就可以了. 但是实际情况中,并查集形成的树的形态都是不可预估的,如果直接将一个节点指向自己可能 ...
- hdu 3234 Exclusive-OR 题解(并查集,思维)
该死的期末复习终于结束了... 暑假来了\color{#ff0000}{暑假来了}暑假来了!!! 所以我就珂以非常开心的写博客了. 原题链接: hdu 题意简述 多组数据.你有一个没有确定的数列.有一 ...
- *【HDU - 2473】Junk-Mail Filter (并查集--删点操作)
题干: Recognizing junk mails is a tough task. The method used here consists of two steps: 1) Extract ...
- How Many Answers Are Wrong HDU - 3038(带权并查集经典题,满满的都是注释)
How Many Answers Are Wrong HDU - 3038 点击打开链接 题意:现在有n个数(你并不知道这n个数是什么),m次查询,每次查询给出u,v,w.表示从第u个数到第v个数的 ...
- hdu 1232 畅通工程 最小生成树 并查集
1232的连接:http://acm.hdu.edu.cn/showproblem.php?pid=1232 #include <iostream>#include <cstdio& ...
- HDU 1213 How Many Tables 并查集 水~
http://acm.hdu.edu.cn/showproblem.php?pid=1213 果然是需要我陪跑T T,禽兽工作人员还不让,哼,但还是陪跑了~ 啊,还有呀,明天校运会终于不用去了~耶耶耶 ...
- HDU 1272 小希的迷宫 (并查集)
小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...
- hdu 1811 Rank of Tetris (并查集+拓扑排序)
Problem - 1811 感觉这题的并查集以及拓扑排序并不难,但是做题的时候必须理解到矛盾(CONFLICT)与不确定(UNCERTAIN)直接的优先关系. 做这题的时候,构图什么的很简单,就是没 ...
最新文章
- 绩效管理领域对管理者的任务和能力要求
- 最全面的百度地图JavaScript离线版开发
- SQL server与Oracle触发器的创建与使用
- C运行时库和标准C++库
- P3811-[模板]乘法逆元【线性求逆元】
- Oracle 数据文件 实际使用量 计算说明
- 【NOIP-2017PJ】图书管理员
- 2017-2018-1 JAVA实验站 第四、五周作业
- 光伏窗性能研究(2)——光伏窗性能研究方法和过程
- 微信卡券 java_微信卡券功能JAVA版(PS : 其實無關乎什么語言拉 :) )
- JS实现将数字金额转换为大写人民币汉字的方法
- Kettle-时间维度的生成
- HIT-2022年春季学期《软件构造》Lab 1实验心得
- html5的video在IOS端默认全屏和黑屏问题
- java.lang.ClassCastException: [Ljava.lang.Long; cannot be cast to java.util.List
- 挑战华为社招:2021Java高级面试题汇总解答
- 面试 | 什么是内部类?成员内部类、静态内部类、局部内部类和匿名内部类的区别及作用?
- php mysql md5加密_php 用户密码MD5加密存入数据库问题//
- swagger-ui导出word接口文档
- 奥扬科技IPO被终止注册:年营收8亿 苏伟持有67.5%股权
热门文章
- spring boot:java.lang.IllegalStateException异常
- 反恐精英出现服务器消息,cs你已被禁用次服务器 | 手游网游页游攻略大全
- 张岩 重庆大学 计算机学院,扬帆起,乘东风,气芳华——记重庆大学计算机学院新老生交流会...
- qt 实现拖动矩形角度_手机上如何使用CAD角度标注功能?
- 曼彻斯特解密_曼彻斯特编码解码方法与流程
- Gym 101221I [WF2014]Sensor Network (二分图匹配)
- 云耀服务器切换系统,云耀云服务器重装操作系统
- jsp 知乎_JSP
- Html img 标签
- Jmeter测试Mysql数据库-入门篇