fzu 2155 盟国
Accept: 39 Submit: 129
Time Limit: 1000 mSec Memory Limit : 32768
KB
Problem Description
世界上存在着N个国家,简单起见,编号从0~N-1,假如a国和b国是盟国,b国和c国是盟国,那么a国和c国也是盟国。另外每个国家都有权宣布退盟(注意,退盟后还可以再结盟)。
定义下面两个操作:
“M X Y” :X国和Y国结盟
“S X” :X国宣布退盟
Input
多组case。
每组case输入一个N和M (1 ≤ N ≤ 100000 , 1 ≤ M ≤ 1000000),N是国家数,M是操作数。
接下来输入M行操作
当N=0,M=0时,结束输入
Output
对每组case输出最终有多少个联盟,格式见样例。
Sample Input
Sample Output
#include<iostream>
#include<stdio.h>
#include<cstring>
#include<cstdlib>
using namespace std; int f[];
bool use[];
int cnt;
int n,m;
int find(int x)
{
int i=x,r;
while(f[x]!=x)
x=f[x];
while(i!=x)
{
r=f[i];
f[i]=x;
i=r;
}
return x;
}
void Union(int x,int y)
{
int x1,y1;
x1=find(x);
y1=find(y);
if(x1==y1) return;
else
{
if(x1<n && y1<n)
{
f[x1]=cnt;
f[y1]=cnt++;
}
else if(x1>=n || y1>=n)
{
if(x1>=n)
f[y1]=x1;
else f[x1]=y1;
}
}
}
int main()
{
int i,k,x,y,Num,t=;
char cur[];
while(scanf("%d%d",&n,&m)>)
{
if(n==&&m==)break;
for(i=;i<=m;i++)
{
f[i]=i;
use[i]=false;
}
cnt=n+;
for(i=;i<=m;i++)
{
scanf("%s",cur);
if(cur[]=='M')
{
scanf("%d%d",&x,&y);
Union(x,y);
}
else if(cur[]=='S')
{
scanf("%d",&x);
f[x]=x;
}
}
Num=;
for(i=;i<n;i++)
find(i);
for(i=;i<n;i++)
{
k=f[i];
use[k]=true;
}
for(i=;i<=m;i++)
if(use[i]==true) Num++;
printf("Case #%d: ",++t);
printf("%d\n",Num);
}
return ;
}
fzu 2155 盟国的更多相关文章
- 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~ ...
- HITtrainning20140417题解
题目列表: ID Origin Title 10 / 15 Problem A FZU 2152 文件系统 0 / 16 Problem B FZU 2153 A simple geome ...
- FZU 2137 奇异字符串 后缀树组+RMQ
题目连接:http://acm.fzu.edu.cn/problem.php?pid=2137 题解: 枚举x位置,向左右延伸计算答案 如何计算答案:对字符串建立SA,那么对于想双延伸的长度L,假如有 ...
- FZU 1914 单调队列
题目链接:http://acm.fzu.edu.cn/problem.php?pid=1914 题意: 给出一个数列,如果它的前i(1<=i<=n)项和都是正的,那么这个数列是正的,问这个 ...
- ACM: FZU 2105 Digits Count - 位运算的线段树【黑科技福利】
FZU 2105 Digits Count Time Limit:10000MS Memory Limit:262144KB 64bit IO Format:%I64d & ...
- FZU 2112 并查集、欧拉通路
原题:http://acm.fzu.edu.cn/problem.php?pid=2112 首先是,票上没有提到的点是不需要去的. 然后我们先考虑这个图有几个连通分量,我们可以用一个并查集来维护,假设 ...
- ACM: FZU 2107 Hua Rong Dao - DFS - 暴力
FZU 2107 Hua Rong Dao Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I6 ...
- ACM: FZU 2112 Tickets - 欧拉回路 - 并查集
FZU 2112 Tickets Time Limit:3000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u P ...
- ACM: FZU 2102 Solve equation - 手速题
FZU 2102 Solve equation Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & ...
随机推荐
- 【新题】OCP 062题库出现很多新题-6
6.Which four statements are true about database instance behavior? A) Redo log files can be renamed ...
- jzoj3519
我們考慮將一個節點x的所有兒子的數都改成y 記lcm[x]表示一個點的所有子節點的lcm值 那麼我們會發現y*deg[x] 要被lcm[x]整除 那麼x就會比x所有子節點最小的數小,記為z 那麼x就是 ...
- struts+spring+hibernate两张表字段名一样处理方法
在利用struts2+spring+hibernate(利用Hibernate进行分页查询)三大框架进行开发项目的时候,出现一个问题:居然要进行关联查询的十几张表中有两张表的字段一样,并且这两张表中的 ...
- python学习笔记03-用户输入
name=Input(“your name”) 此处接受的数据类型为字符串 整数转字符串 str(123) 整数转字符串 int(“123”)
- celery初始化
# 在任务处理者一端加初始化 import os import django os.environ.setdefault("DJANGO_SETTINGS_MODULE", &qu ...
- JS实现一个基于对象的链表
JS实现一个基于对象的链表 /*JS实现一个基于对象的链表*/ function Node(element){ this.element = element;//节点存储的元素 this.next = ...
- Kubernetes使用GlusterFS实现数据持久化
k8s中部署有状态应用等需要持久化数据的应用,必不可少得用存储,k8s支持很多中存储方案,我司目前使用的存储有glusterfs(分为容器化和裸机方式).nfs供应用选用,本次就简单实战下gluste ...
- (转)MySQL详解--锁
原文:http://blog.csdn.net/xifeijian/article/details/20313977 锁是计算机协调多个进程或线程并发访问某一资源的机制.在数据库中,除传统的计算资源( ...
- [转]asp.net core中的View Component
解读ASP.NET 5 & MVC6系列(14):View Component http://www.cnblogs.com/TomXu/p/4496486.html
- Android 开发工具类 23_getImage
pathText = "http://192.168.1.100:8080/ServerForPicture/wangjialin.jpg" import java.io.Inpu ...