zoukankan
html css js c++ java
HDU1829 A Bug's Life 并查集
/* HDU1829A Bug's Life 并查集的应用 这题不是判断是否在同一集合,而是判断是否在不同的集合 */ #include <iostream> #include "UFS.h" using namespace std; int oppo[MAXN];//记录系第一个BUG的异性所在的集合的编号 int main() { int t; int n,m,i,j; UFS ufs; scanf("%d",&t); for(j=1;j<=t;j++) { bool f=0; memset(oppo, 0, sizeof(oppo)); ufs.clear(); scanf("%d%d",&n,&m); for(i=0;i<m;i++) { int a,b; scanf("%d%d",&a,&b); int x = ufs.Find(a), y = ufs.Find(b); if(x==y)f=1;//如果在同一集合,肯定是Suspicious bugs else //如果在不同集合,就把对方加入自己的异性集合 { int min,p,q; //如果自己的异性集合为空 if(oppo[x]==0) oppo[x]=y; //如果自己的异性集合不为空 else ufs.Union(y, oppo[x]); if(oppo[y]==0) oppo[y]=x; else ufs.Union(x, oppo[y]); } } printf("Scenario #%d:\n",j); if(f)printf("Suspicious bugs found!\n"); else printf("No suspicious bugs found!\n"); if(i!=t)printf("\n"); } return 0; }
查看全文
相关阅读:
深入理解java:2.3.1. 并发编程concurrent包 之Atomic原子操作(循环CAS)
深入理解java:2.3. 并发编程 java.util.concurrent包
深入理解java:2.2. 同步锁Synchronized及其实现原理
深入理解java:2.1. volatile的使用及其原理
深入理解java:2. 多线程机制
深入理解java:1.3.2 JVM监控与调优
深入理解java:1.3.1 JVM内存区域的划分(运行时数据区)
深入理解java:1.3. 垃圾收集
深入理解java:1.2. 字节码执行引擎
线程的等待与唤醒,实现if...else里面的值交互依次输出
原文地址:https://www.cnblogs.com/windmissing/p/2559867.html
最新文章
HashMap实现原理及源码分析
C语言(初)
Linux关机常用命令
Nginx_CentOS 7
SQL Server2008R2安装步骤
将博客搬至CSDN
linux中创建文件和文件夹
Linux网路配置
adb链接时报错误10061解决方法
php 配置上传大文件
热门文章
LARAVEL IOC容器 示例解析
LARAVEL 路由原理分析
如何将局域网中的 windows 硬盘挂载到 linux 系统中
查询一个表里的所有字段
使用 minio 搭建私有对象存储云。aws-php-sdk 操作object
实用的sublime插件集合 – sublime推荐必备插件
aws
php 中的杂项函数
larave 控制器中获取路由参数
深入理解java:2.3.2. 并发编程concurrent包 之重入锁/读写锁/条件锁
Copyright © 2011-2022 走看看