LA -3644 X-Plosives -并查集
2015-09-04 17:40
417 查看
...如果能把题目转化为 并查集 就非常简单-.- 不然的话真是没什么思路
#include <cstdio> #include <cmath> #include <cstring> #include <string> #include <algorithm> #include <iostream> #include <queue> #include <map> #include <set> #include <vector> using namespace std; int fa[100005]; int find(int x) { if (fa[x]==x) return x; return fa[x]=find(fa[x]); } int main() { int a,b,i; for (i=1;i<=100005;i++) fa[i]=i; int cun=0; while(scanf("%d",&a)!=EOF) { if (a!=-1) { scanf("%d",&b); int fx=find(a); int fy=find(b); if (fx!=fy) { if (fa[fx]!=fx) fa[fy]=fx; else fa[fx]=fy; } else { cun++; } continue; } printf("%d\n",cun); cun=0; for (i=1;i<=100005;i++) fa[i]=i; } return 0; }
相关文章推荐
- 总结Unity 初学者容易犯的编译与运行时错误(第二部分)
- VC6.0 调试.dll文件
- 如何在 Quagga BGP 路由器中设置 IPv6 的 BGP 对等体和过滤
- 姿态结算----梯度下降法
- 文件的分割与合并
- 重载算术运算符
- 微信支付 php jsapi 配置调试
- C语言实现栈操作
- 我的第一个Cocos2dx游戏
- Centos7硬件信息查询cpu,mem,fdisk,网卡
- 华为OJ题库-C++实现蛇形矩阵
- 拦截TextBox 双击消息
- Java基础针对自己薄弱环节总结08(线程上)
- 多态详解
- hdu3308(线段树,区间合并)
- 迭代器iterator
- js事件基础
- css笔记
- VB指针操作和消息钩子
- CentOS上Hadoop环境的搭建与管理