hdu1829题解(A BUG'S LIFE)简单并查集
2016-07-22 21:45
323 查看
题意应该不难理解,Professor Hopper的猜想是任何bug都只会和异性interaction,如果不能确定猜想是否错误,输出No suspicious bugs found!;
如果猜想一定错误,输出Suspicious bugs found!
再解释一下,如果出现两只bug interaction,说明他们是异性,那么出现冲突(出现同性和同性interaction)的话猜想就一定错误。
如果猜想一定错误,输出Suspicious bugs found!
再解释一下,如果出现两只bug interaction,说明他们是异性,那么出现冲突(出现同性和同性interaction)的话猜想就一定错误。
#include <iostream> #include <stdio.h> #include <algorithm> #include <stdlib.h> #include <map> #include <vector> #include <string.h> #include <queue> #define ms(X) memset(X,0,sizeof(X)) #define msc(X) memset(X,-1,sizeof(X)) typedef long long LL; using namespace std; int pre[2010],dsex[2010]; int find(int node) { if(pre[node]==node) return node; return pre[node]=find(pre[node]); } bool join(int x,int y) { int fx=find(x),fy=find(y); if(fx==fy) return true; else {if(dsex[fx]!=-1) pre[dsex[fx]]=fy; if(dsex[fy]!=-1) pre[dsex[fy]]=fx; dsex[fy]=fx,dsex[fx]=fy; } return false; } int main(void) { int t,ti=0; cin>>t; while(++ti<=t) { int n,m; scanf("%d %d",&n,&m); for(int i=1;i<=n;i++) pre[i]=i;msc(dsex); bool Is_found=false; while(m--) { int a,b; scanf("%d %d",&a,&b); Is_found=Is_found||join(a,b); } printf("Scenario #%d:\n%suspicious bugs found!\n\n", ti,Is_found?"S":"No s"); } return 0; }
相关文章推荐
- leetcode Perfect Squares
- css3 media媒体查询器用法总结
- 深度学习(四十一)cuda8.0+ubuntu16.04+theano、caffe、tensorflow环境搭建
- jsp内置对象和el表达式
- jsp 三大指令和动作标签
- angular directive简介
- Learning Deep Features for Discriminative Localization论文笔记以及Caffe实现
- w3c js笔记
- CSS content、padding、border、margin属性
- jsonp和xml格式生成与调用
- JS实现常用排序算法—经典的轮子值得再造
- Jquery实现文本框得到焦点的时候,文本框的焦点出现在最后!
- js-表单验证
- Css3元素浮动时居中
- 「前端知识框架」 -- 较全的前端知识
- 【HTML】快速掌握 html 常用标签
- JavaScriptCookie&PHPCookie实现用户登录信息自动填入
- javascript之单击获得单词
- 公共jquery库/常用前端公共库CDN服务推荐
- css属性书写顺序分析