2018.09.12 hdu2473Junk-Mail Filter(并查集)
传送门
一开始开题还以为是平衡树。
仔细想了一想并查集就可以了。
合并操作没什么好说的。
删除操作:对于每个点记录一个pos值表示原来的点i现在的下标是什么。
每次删除点i是就新建一个点cnt,然后令pos[i]=cnt就行了。
代码;
#include<bits/stdc++.h>
#define N 1200005
using namespace std;
inline int read(){
int ans=0;
char ch=getchar();
while(!isdigit(ch))ch=getchar();
while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^48),ch=getchar();
return ans;
}
int n,m,fa[N],pos[N],cnt=0,T=0;
bool vis[N];
inline int find(int x){return x==fa[x]?fa[x]:fa[x]=find(fa[x]);}
int main(){
while(n=read(),m=read(),n||m){
++T;
cnt=n;
for(int i=1;i<=n+m;++i)fa[i]=i,pos[i]=i,vis[i]=false;
while(m--){
char s[2];
scanf("%s",s);
if(s[0]=='M'){
int x=read()+1,y=read()+1,fx=find(pos[x]),fy=find(pos[y]);
if(fx!=fy)fa[fx]=fy;
}
else{
int x=read()+1;
pos[x]=++cnt;
}
}
int ans=0;
for(int i=1;i<=n;++i)if(!vis[find(pos[i])])vis[find(pos[i])]=1,++ans;
printf("Case #%d: %d\n",T,ans);
}
return 0;
}
2018.09.12 hdu2473Junk-Mail Filter(并查集)的更多相关文章
- Artificial Intelligence Computing Conference(2018.09.12)
时间:2018.09.12地点:北京国际饭店会议中心
- hdu 2473 Junk-Mail Filter (并查集之点的删除)
Junk-Mail Filter Time Limit: 15000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- hdu2473 Junk-Mail Filter 并查集+删除节点+路径压缩
Description Recognizing junk mails is a tough task. The method used here consists of two steps: 1) ...
- HDU 2473 Junk-Mail Filter(并查集+删点,设立虚父节点/找个代理)
题意:有N封邮件, 然后又两种操作,如果是M X Y , 表示X和Y是相同的邮件.如果是S X,那么表示对X的判断是错误的,X是不属于X当前所在的那个集合,要把X分离出来,让X变成单独的一个.最后问集 ...
- (step5.1.2)hdu 2473(Junk-Mail Filter——并查集)
题目大意:输入两个整数n,m(n表示点的个数,m表示操作数).在接下来的m行中,对点的操作有两种 1)M a b . 表示将a.b并到一个集合中 2)S a .表示将a从原来的集合中去除,而成为一个单 ...
- 2018.08.21 bzoj4668: 冷战(并查集+启发式合并)
传送门 可以发现需要维护连通性和两点连通时间. 前者显然是并查集的常规操作,关键就在于如何维护两点的连通时间. 然后会想到这个时候不能用路径压缩了,因为它会破坏原本树形集合的结构,因此可以启发式按si ...
- HDU 2473 Junk-Mail Filter 并查集,虚拟删除操作
http://acm.hdu.edu.cn/showproblem.php?pid=2473 给定两种操作 第一种是合并X Y 第二种是把X分离出来,就是从原来的集合中分离出来,其它的关系不变. 关键 ...
- HDU 2473 Junk-Mail Filter(并查集的删除操作)
题目地址:pid=2473">HDU 2473 这题曾经碰到过,没做出来. .如今又做了做,还是没做出来. ... 这题涉及到并查集的删除操作.想到了设一个虚节点,可是我把虚节点设为了 ...
- HDU 2473 Junk-Mail Filter 并查集删除(FZU 2155盟国)
http://acm.hdu.edu.cn/showproblem.php?pid=2473 http://acm.fzu.edu.cn/problem.php?pid=2155 题目大意: 编号0~ ...
随机推荐
- 关于jquery的cookie的顺序,应首先是jQuery的引用,然后是cookie引用,否则系统无反应
<script src="../Scripts/jquery-1.4.1.js" type="text/javascript" ></scri ...
- 数学公式 AS3应用
普通做法: var pA:Point=new Point(100,100); var pB:Point=new Point(300,200); var dx:Number=pA.x-pB.x; var ...
- 在eclipse中修改生成的注释类、方法的作者、时间
1.打开eclipse:windos-->preferences-->Java-->Code Style -->Code Templates-->Types-->点 ...
- ubuntu下安装jdk,tomcat,mysql,ftp,telnet,svn
需求分析:自己弄了个小网站,想放到云服务器上,同时把自己积累的代码也放上去,服务器上的文件可以简单的在windows上查看,也可以方便的通过windows连接linux服务器. 解决:运行网站要用到j ...
- How to Pronounce WH Words — what, why, which
How to Pronounce WH Words — what, why, which Share Tweet Share Have you noticed that there are two d ...
- C# 获取textbox行数
当textbox为多行时,获取它的行数:int count = this.txtMsgInfo.Lines.GetUpperBound(0);
- ionic2
拨打电话: <access origin="tel:*" launch-external="yes" /> 发邮件: <access orig ...
- new operator
[new operator] When the code new Foo(...) is executed, the following things happen: A new object is ...
- svn: authentication cancelled
从svn 下程序时用户名和密码输入正确后报如图错误! 控制台输出: svn: authentication cancelled svn: authentication cancelled ...
- linux、centos下查看系统版本、bios版本,内存信息等
1.查看系统版本 [root@localhost ~]# more /etc/issueCentOS release 6.2 (Final)Kernel \r on an \m 2.查看CPU信息 : ...