Hdu2860-Regroup(种类并查集)
MG x y Company x and company y is merged. The new company is numbered as x. (0<=x, y<n)
GT x Report the fighting capacity of company x. (0<=x<n)
#include<cstdio>
#include<cstring>
#include<string>
#include<iostream>
#include<sstream>
#include<algorithm>
#include<utility>
#include<vector>
#include<set>
#include<map>
#include<queue>
#include<cmath>
#include<iterator>
#include<stack>
using namespace std;
typedef __int64 LL;
const LL INF=1e12+;
const int maxn=;
LL Min(LL a,LL b){ return a<b?a:b; }
int N,K,M;
LL val[maxn];
int d[maxn];
int root(int a)
{
if(d[a]==a) return a;
int t=d[a];
d[a]=root(d[a]);
//val[a]=Min(val[a],val[t]);
return d[a];
}
void FunA()
{
LL x;
int y;
scanf("%lld%d",&x,&y);
int ra=root(y);
if(ra!=y) printf("Reject\n");
else
{
printf("Accept\n");
val[ra]=Min(val[ra],x);
}
}
void FunM()
{
int x,y;
scanf("%d%d",&x,&y);
if(x==y){ printf("Reject\n"); return; }
int ra=root(x);
int rb=root(y);
if(ra!=x||rb!=y) printf("Reject\n");
else
{
d[rb]=ra;
val[ra]=Min(val[ra],val[rb]);
printf("Accept\n");
}
}
void FunG()
{
int x;
scanf("%d",&x);
int ra=root(x);
if(ra!=x) printf("Company %d is a part of company %d.\n",x,ra);
else if(val[ra]==INF) printf("Company %d is empty.\n",ra);
else printf("Lowest rate: %lld.\n",val[ra]);
}
int main()
{
while(scanf("%d%d%d",&N,&K,&M)!=EOF)
{
LL r;
int c;
for(int i=;i<maxn;i++) val[i]=INF,d[i]=i;
for(int i=;i<=K;i++)
{
scanf("%lld%d",&r,&c);
val[c]=Min(val[c],r);
}
char op[];
while(M--)
{
scanf("%s",op);
if(op[]=='A') FunA();
else if(op[]=='M') FunM();
else FunG();
}
printf("\n");
}
return ;
}
Hdu2860-Regroup(种类并查集)的更多相关文章
- NOI2001|POJ1182食物链[种类并查集 向量]
食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 65430 Accepted: 19283 Description ...
- NOIP2010关押罪犯[并查集|二分答案+二分图染色 | 种类并查集]
题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用“怨气值”(一个正整数值)来表示 ...
- POJ1703Find them, Catch them[种类并查集]
Find them, Catch them Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 42416 Accepted: ...
- poj1417(种类并查集+dp)
题目:http://poj.org/problem?id=1417 题意:输入三个数m, p, q 分别表示接下来的输入行数,天使数目,恶魔数目: 接下来m行输入形如x, y, ch,ch为yes表示 ...
- poj1733(种类并查集+离散化)
题目链接: http://poj.org/problem?id=1733 题意: 输入n表示有一个长度为n的0,1字符串, m表示接下来有m行输入, 接下来的m行输入中x, y, even表示第x到第 ...
- poj 1182:食物链(种类并查集,食物链问题)
食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 44168 Accepted: 12878 Description ...
- pku 1703(种类并查集)
题目链接:http://poj.org/problem?id=1703 思路;个人觉得本质上还是和带权并查集一样的,只不过多了一个MOD操作,然后就是向量关系图稍微改动一下就变成种类并查集了,对于本题 ...
- hdu 3038 How Many Answers Are Wrong(种类并查集)2009 Multi-University Training Contest 13
了解了种类并查集,同时还知道了一个小技巧,这道题就比较容易了. 其实这是我碰到的第一道种类并查集,实在不会,只好看着别人的代码写.最后半懂不懂的写完了.然后又和别人的代码进行比较,还是不懂,但还是交了 ...
- 【进阶——种类并查集】hdu 1829 A Bug's Life (基础种类并查集)TUD Programming Contest 2005, Darmstadt, Germany
先说说种类并查集吧. 种类并查集是并查集的一种.但是,种类并查集中的数据是分若干类的.具体属于哪一类,有多少类,都要视具体情况而定.当然属于哪一类,要再开一个数组来储存.所以,种类并查集一般有两个数组 ...
随机推荐
- puppet cert maintain
- [置顶] 单片机C语言易错知识点经验笔记
今天写这一篇文章并不是因为已经想好了一篇文章才写下来,而是我要将这一篇文章作为一个长期的笔记来写,我会一直更新.在进行单片机开发时,经常都会出现一些很不起眼的问题,这些问题其实都是很基础的c语言知识点 ...
- jQuery鼠标悬停图片放大显示
jQuery鼠标悬浮放于图片上之后图片放大显示的效果,即鼠标移到图片上图片突出显示,鼠标移开后恢复原来的模样,你可以在图片滚动效果中加上本特效,相信会更炫一些. <!DOCTYPE html P ...
- SecureCRT 安装及初始化配置
安装 SecureCRT 7.3.4 安装以及破解方法 SecureCRT 6.5.0 汉化解压版 初始化配置 这里配置以SecureCRT 6.5.0 汉化解压版为例 1.调整SecureCRT终端 ...
- HDU2206 IP的计算 【经典题】
IP的计算 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- Dalvik虚拟机Java堆创建过程分析
文章转载至罗升阳CSDN社区博客,原地址: http://blog.csdn.net/luoshengyang/article/details/6557518 近年来,手机移动平台越来越火爆.打开自己 ...
- tomcat线程数查看
获取tomcat进程pid ps -ef|grep tomcat 统计该tomcat进程内的线程个数 ps -Lf 29295 |wc -l
- thinking in java知识小记(一)
知识点一(javadoc): 使用javadoc时特别注意选择encoding和charset为utf-8,要不然生成的javadoc会是乱码,命令:javadoc -encoding utf-8 - ...
- 报错要跟到底就很更快更准确的发现问题所在一直in进去(其实都知道的哈)
问题-查看详细信息-innerexception-innerexception
- Application 可以存储全局变量
Application.Lock(); Application["Name"]="小亮" Application.UnLock(); Response.Writ ...