POJ 1703

时间:2023-01-20 01:04:57

种类并查集,基本思想是每次压缩路径都必须同时更新子节点和根节点的关系,这种关系是通过子节点和父亲节点的关系,以及父亲节点与根节点的关系运算出来。

压缩路径的findme();参考了大神的代码,做的第二个种类并查集....

#include<stdio.h>
#include<string.h>
int cri[];//记录每一个元素的根节点
int pp[];//记录元素与根节点的关系,0代表盟友,1代表敌人
int findme(int a)
{
if(a==cri[a])
{
return a;
}
int temp=cri[a];//temp用于记录递归前该节点的父亲节点
cri[a]=findme(cri[a]);//找到a节点的根节点
pp[a]=(pp[temp]+pp[a])&;//通过a节点的父亲节点与根节点的关系以及a节点和其父亲节点的关系更新得到a节点和新的根节点的关系
return cri[a];
}
void link(int a, int b)
{
int ttmp,tmpa,tmpb;
tmpa=findme(a);
tmpb=findme(b);
if(tmpa!=tmpb)
{
cri[tmpb]=tmpa;
pp[tmpb]=(pp[a]+pp[b]+)&;
}
}
int main()
{
int t,n,m,a,b;
char ca;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
memset(pp,,sizeof(pp));
for(int i=;i<=n;i++)
{
cri[i]=i;
}
getchar();
for(int i=;i<m;i++)
{
ca=getchar();
if(ca=='D')
{
scanf("%d%d",&a,&b);
getchar();
if(a==b)
continue;
link(a,b);
}
else
{
scanf("%d%d",&a,&b);
getchar();
if(findme(a)==findme(b))
{
if((pp[a]+pp[b])&)
{
printf("In different gangs.\n");
}
else
{
printf("In the same gang.\n");
}
}
else
{
printf("Not sure yet.\n");
}
}
}
}
return ;
}

POJ 1703的更多相关文章

  1. poj&period;1703&period;Find them&comma; Catch them&lpar;并查集)

    Find them, Catch them Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I6 ...

  2. POJ 1703 Find them&comma; Catch them(种类并查集)

    Find them, Catch them Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 41463   Accepted: ...

  3. 【原创】POJ 1703 &amp&semi;&amp&semi; RQNOJ 能量项链解题报告

    唉 不想说什么了 poj 1703,从看完题到写完第一个版本的代码,只有15分钟 然后一直从晚上八点WA到第二天早上 最后终于发现了BUG,题目要求的“Not sure yet.”,我打成了“No s ...

  4. K - Find them&comma; Catch them POJ - 1703 (带权并查集)

    题目链接: K - Find them, Catch them POJ - 1703 题目大意:警方决定捣毁两大犯罪团伙:龙帮和蛇帮,显然一个帮派至少有一人.该城有N个罪犯,编号从1至N(N<= ...

  5. POJ 2236 Wireless Network &vert;&vert;POJ 1703 Find them&comma; Catch them 并查集

    POJ 2236 Wireless Network http://poj.org/problem?id=2236 题目大意: 给你N台损坏的电脑坐标,这些电脑只能与不超过距离d的电脑通信,但如果x和y ...

  6. 【并查集】模板 &plus; 【HDU 1213、HDU 1232、POJ 2236、POJ 1703】例题详解

    不想看模板,想直接看题目的请戳下面目录: 目录: HDU 1213 How Many Tables[传送门] HDU 1232 畅通工程 [传送门] POJ 2236 Wireless Network ...

  7. 种类并查集(POJ 1703)

    1703 -- Find them, Catch them http://poj.org/problem?id=1703 题目大意:有2个敌对帮派,输入D a b表示a,b在不同帮派,输入A a b表 ...

  8. hdu - 1829 A Bug&&num;39&semi;s Life &lpar;并查集&rpar;&amp&semi;&amp&semi;poj - 2492 A Bug&&num;39&semi;s Life &amp&semi;&amp&semi; poj 1703 Find them&comma; Catch them

    http://acm.hdu.edu.cn/showproblem.php?pid=1829 http://poj.org/problem?id=2492 臭虫有两种性别,并且只有异性相吸,给定n条臭 ...

  9. poj 1703 Find them&comma; Catch them(并查集)

    题目:http://poj.org/problem?id=1703 题意:一个地方有两个帮派, 每个罪犯只属于其中一个帮派,D 后输入的是两个人属于不同的帮派, A后询问 两个人是否属于 同一个帮派. ...

  10. (并查集 带关系)Find them&comma; Catch them -- poj -- 1703

    链接: http://poj.org/problem?id=1703 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3676 ...

随机推荐

  1. Java学习笔记(二)UML基础

    用例图:代表系统的一个功能模块,仅仅是系统功能的描述.用例图包括:用例.角色.角色和用例之间的关系以及系统内用例之间的关系. 类图:表示系统中包含哪些实体,各实体之间如何关联. 类图除了表示实体内部结 ...

  2. CentOS 6&period;5 安装配置

    关于CentOS的安装,网上有很多详细的教程.其实重点就在于硬盘的分区和软件的定制这两块.下面我在VirtualBox虚拟机上安装 CentOS-6.5-i386-minimal. 1.在起始菜单处选 ...

  3. 【Stage3D学习笔记续】真正的3D世界(六):空间大战

    这就是书上的最终效果了,一个完整的空间大战游戏: 点击查看源码 这里并没有太多的新知识,所涉及的东西更多的是游戏开发方面的优化和技巧,下面我们大家一起来看看: 飞船: 类似粒子效果中的粒子创建方法,我 ...

  4. 版本管理神器git上手

    由于以前折腾过svn,虽然最终没有用成功,但是也算有经验,git入门还是比较简单的. 在新目录下建立初始化版本库  : git init git add file git add file2 git ...

  5. es6 for of 循环

    es6 新增了 for of 循环,只要继承了Iterator 接口的数据集合都可以使用 for of 去循环 for of 循环,统一数据集合的循环方法,解决了forEach循环的不能使用break ...

  6. January 08th&comma; 2018 Week 02nd Monday

    To be yourself in a world that is constantly trying to make you something else is the greatest accom ...

  7. 异步设备IO OVERLAPPED结构&lpar;设备内核对象 事件内核对象 可提醒IO&rpar;

    同步IO是指:线程在发起IO请求后会被挂起,IO完成后继续执行. 异步IO是指:线程发起IO请求后并不会挂起而是继续执行.IO完毕后会得到设备驱动程序的通知. 一.异步准备与OVERLAPPED结构 ...

  8. ES6----Proxy(一)

    Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程. 听起来好像很绕,可以简单这样理解,Proxy相当于 ...

  9. 三、Hadoop 的 API

    1.环境搭建 <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop- ...

  10. python read文件内容的iter方式

    遍历file的方式 iter(lambda: f.read(4096), "")等价与while True: data = f.read(4096) if not data: br ...