POJ2492-A Bug's Life-并查集扩展应用
2016-02-02 00:07
435 查看
维护一个relation数组,保留着此元素和根元素之间的性别关系。之后就可以判断gay了。
#include <cstdio> #include <algorithm> #include <cstring> using namespace std; const int maxn=2010; int T,n,m; int fa[maxn],rela[maxn]; int Find(int x) { int t; if(fa[x] == x) return x; t = fa[x]; fa[x] = Find(fa[x]); rela[x] = (rela[x]+rela[t]+1)%2; return fa[x]; } void Union(int x,int y) { int fx=Find(x),fy=Find(y); fa[fx] = fy; rela[fx] = (rela[y]-rela[x])%2; } int main() { scanf("%d",&T); for(int kase=1;kase<=T;kase++) { scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) { fa[i] = i; rela[i] = 1; } int x,y,sus=0; for(int i=0;i<m;i++) { scanf("%d%d",&x,&y); if(Find(x) == Find(y)) { if(rela[x] == rela[y]) sus=1; } else Union(x,y); } printf("Scenario #%d:\n",kase); if(sus) printf("Suspicious bugs found!\n\n"); else printf("No suspicious bugs found!\n\n"); } }
相关文章推荐
- Hammer.js+轮播原理实现简洁的滑屏功能
- 基于JQuery实现图片轮播效果(焦点图)
- javascript实现瀑布流加载图片原理
- 原生js实现图片层叠轮播切换效果
- javascript自动切换焦点控制效果完整实例
- javascript绘制漂亮的心型线效果完整实例
- JavaScript File API文件上传预览
- jQuery AjaxUpload 上传图片代码
- JavaScript File API实现文件上传预览
- javascript自定义滚动条实现代码
- JavaScript+html5 canvas实现本地截图教程
- 基于jquery实现下拉框美化特效
- 原生JS实现拖拽图片效果
- 三种AngularJS中获取数据源的方式
- 多种JQuery循环滚动文字图片效果代码
- AngularJS数据源的多种获取方式汇总
- AngularJS中处理多个promise的方式
- AngularJS中$interval的用法详解
- JavaScript通过代码调用Flash显示的方法
- 体验jQuery和AngularJS的不同点及AngularJS的迷人之处