http://acm.hdu.edu.cn/showproblem.php?pid=2860

n个旅,k个兵,m条指令

AP 让战斗力为x的加入y旅

MG x旅y旅合并为x旅

GT 报告x旅的战斗力

几个需要注意的小问题是:已经被合并过的不能再参加合并这样就简化了并查集本身的复杂度只存在一层继承关系

一道简单的并查集题目,一开始不知道什么情况总是PE,格式上找不到错23333

后来参考了潘大神的代码,原来是最后回车的位置粗了偏擦23333

#include<stdio.h>
#define inf 0x3f3f3f3f
int par[];
int miner[];
int min(int a,int b)
{
if(a>b){return b;}
else return a;
}
void atfirst(int n)
{
int i;
for(i=;i<n;i++)
{
par[i]=i;
miner[i]=inf;
}
}
int find(int x)
{
return x!=par[x]?par[x]=find(par[x]):x;
}
int main()
{
int i,k,n,m;
int r,c;
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
while(scanf("%d%d%d",&n,&k,&m)!=EOF)
{
atfirst(n);
for(i=;i<=k;i++)
{
scanf("%d%d",&r,&c);
miner[c]=min(r,miner[c]);
}
for(i=;i<=m;i++)
{
char donser[];
scanf("%s",&donser);
if(donser[]=='A')
{
scanf("%d%d",&r,&c);
if(par[c]!=c){printf("Reject\n");continue;}
miner[c]=min(r,miner[c]);
printf("Accept\n");
}
if(donser[]=='M')
{
scanf("%d%d",&r,&c);
if(r==c){printf("Reject\n");continue;}
if(par[r]==r&&par[c]==c)
{
par[c]=r;
miner[r]=min(miner[r],miner[c]);
printf("Accept\n");
}
else printf("Reject\n");
}
if(donser[]=='G')
{
scanf("%d",&r);
if(par[r]==r&&miner[r]!=inf)
printf("Lowest rate: %d.\n",miner[r]);
else if(par[r]==r&&miner[r]==inf)
printf("Company %d is empty.\n",r);
else
{
printf("Company %d is a part of company %d.\n",r,find(r));
}
}
}
printf("\n");
}
return ;
}

HDU 2860 并查集的更多相关文章

  1. hdu 4514 并查集+树形dp

    湫湫系列故事——设计风景线 Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Tot ...

  2. HDU 3926 并查集 图同构简单判断 STL

    给出两个图,问你是不是同构的... 直接通过并查集建图,暴力用SET判断下子节点个数就行了. /** @Date : 2017-09-22 16:13:42 * @FileName: HDU 3926 ...

  3. HDU 4496 并查集 逆向思维

    给你n个点m条边,保证已经是个连通图,问每次按顺序去掉给定的一条边,当前的连通块数量. 与其正过来思考当前这边会不会是桥,不如倒过来在n个点即n个连通块下建图,检查其连通性,就能知道个数了 /** @ ...

  4. HDU 1232 并查集/dfs

    原题: http://acm.hdu.edu.cn/showproblem.php?pid=1232 我的第一道并查集题目,刚刚学会,我是照着<啊哈算法>这本书学会的,感觉非常通俗易懂,另 ...

  5. hdu 1198 (并查集 or dfs) Farm Irrigation

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1198 有题目图11种土地块,块中的绿色线条为土地块中修好的水渠,现在一片土地由上述的各种土地块组成,需要浇 ...

  6. hdu 1598 (并查集加贪心) 速度与激情

    题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1598 一道带有贪心思想的并查集 所以说像二分,贪心这类基础的要掌握的很扎实才行. 用结构体数组储存公 ...

  7. hdu 4496(并查集)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4496. 思路:简单并查集应用,从后往前算就可以了. #include<iostream> ...

  8. 2015多校第6场 HDU 5361 并查集,最短路

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5361 题意:有n个点1-n, 每个点到相邻点的距离是1,然后每个点可以通过花费c[i]的钱从i点走到距 ...

  9. HDU 1856 并查集

    http://acm.hdu.edu.cn/showproblem.php?pid=1856 More is better Time Limit: 5000/1000 MS (Java/Others) ...

随机推荐

  1. Java排序算法——归并排序

    import java.util.Arrays; //================================================= // File Name : MergeSor ...

  2. Winsock 入门 判读主机字节序 示例

    #include <stdio.h> union endian_u { /*最大成员的长度就是联合成员的长度.联合可以在定义时直接进行初始化,但这个初始化必须是联合第一个成员的类型,所以把 ...

  3. CSS3新增基础属性总结——20160409(易达客)

    1.box-shadow :h-shadow v-shadow blur spread color inset(outset) h-shadow:必须:水平阴影位置,允许负值. v-shadow:必须 ...

  4. Simple colum formatting in Yii 2 GridView

    A very important widget in the business apps development is the GridView control. In this post I wil ...

  5. 把字符转换为 HTML 实体

    把字符转换为HTML实体:htmlentities() 把HTML实体转换回字符:html_entity_decode() 把预定义的字符 "<" (小于)和 "& ...

  6. vmstat、top

    vmstat是一个查看虚拟内存(Virtual Memory)使用状况的工具,使用vmstat命令可以得到关于进程.内存.内存分页.堵塞IO.traps及CPU活动的信息. vmstat 最常用的有两 ...

  7. 免费的ER 设计软件调研

    目标: 找到一个免费的ER 设计软件, 适合数据仓库项目开发. 结果: 经初步调研, Oracle的 SQL Developer Data Modeler基本满足需求. 但在功能和操作性等方面, 较P ...

  8. 如何判断retina,如何判断设备的比例

    http://www.189works.com/article-95647-1.html 说起iPhone 4带来的革新,retina display绝对是最吸引眼球的一项,以至于我现在看电脑的显示屏 ...

  9. AngularJS 使用ngOption实现下拉列表

    最近使用到了ngOption实现下拉选择列表,由于需要实现分组等功能,百度了下没有太好的文章,就百度到一篇英文的帖子,按照其中的代码很顺利的搞定了. 本篇根据文中代码,详细讲述下如何实现下拉列表 更多 ...

  10. 微信公众平台开放JS-SDK(微信内网页开发工具包)

    微信公众平台开放JS-SDK(微信内网页开发工具包),这次开放接口是质的飞跃,是对开发者和广大用户一个利好的消息.未来的公众号图文消息会更丰富多彩,准备脑洞大开吧!(第三方平台正式支持接入微信公众平台 ...