并查集 LA 3644
2014-04-19 18:41
519 查看
https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1645
题意理解错,TMD, WA的哭了一下午
k种化合物如果有k种元素,会爆炸, 意思是 假设现在有n种元素,那么其中如果存在k种化合物如果有k种元素(k<=n)就不可以!!!
刘汝佳的说法还是很有意思的:元素当点,边表示化合物,那么一旦出现环,就是k种化合物如果有k种元素的情况,蛮巧妙的。
贴代码
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
#include <functional>
using namespace std;
#define MAXN 100011
int father[MAXN+2];
int num;
void makeset()
{
for(int i=0;i<=MAXN;i++)
{
father[i]=i;
}
}
int Find(int x)
{
if(x!=father[x])return father[x]=Find(father[x]);
return x;
}
void Union(int x,int y)
{
x=Find(x);
y=Find(y);
father[y]=x;
num++;
}
int main()
{
int a,b,t,ans,tmp;
while(scanf("%d",&a)!=EOF)
{
num=0;
t=0;
ans=0;
makeset();
while(a!=-1)
{
scanf("%d",&b);
//t++;
//tmp=num;
//int m=Find(flag);
int n=Find(a);
int o=Find(b);
if(n!=o)Union(n,o);
else
ans++;
scanf("%d",&a);
}
printf("%d\n",ans);
}
return 0;
}
题意理解错,TMD, WA的哭了一下午
k种化合物如果有k种元素,会爆炸, 意思是 假设现在有n种元素,那么其中如果存在k种化合物如果有k种元素(k<=n)就不可以!!!
刘汝佳的说法还是很有意思的:元素当点,边表示化合物,那么一旦出现环,就是k种化合物如果有k种元素的情况,蛮巧妙的。
贴代码
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
#include <functional>
using namespace std;
#define MAXN 100011
int father[MAXN+2];
int num;
void makeset()
{
for(int i=0;i<=MAXN;i++)
{
father[i]=i;
}
}
int Find(int x)
{
if(x!=father[x])return father[x]=Find(father[x]);
return x;
}
void Union(int x,int y)
{
x=Find(x);
y=Find(y);
father[y]=x;
num++;
}
int main()
{
int a,b,t,ans,tmp;
while(scanf("%d",&a)!=EOF)
{
num=0;
t=0;
ans=0;
makeset();
while(a!=-1)
{
scanf("%d",&b);
//t++;
//tmp=num;
//int m=Find(flag);
int n=Find(a);
int o=Find(b);
if(n!=o)Union(n,o);
else
ans++;
scanf("%d",&a);
}
printf("%d\n",ans);
}
return 0;
}
相关文章推荐
- 基于JFinal的开源博客系统JFinal_Blog1.1版本发布
- 用JavaScript写的一个自定义弹出式对话框
- 堆排序算法的实现
- curl获取网页内容
- lvs-DR之同一网段的实现方法
- android平台接入服务器总结(三)迅雷 多酷 小米
- hadoop 伪分布安装
- 黑马程序员_ 黑马程序员_基础加强第二天——代理
- 朴素贝叶斯分类器
- 指针与数
- mac上Sublime Text2 搭建lua
- php编译时undefined reference to `libiconv_open'解决办法
- shell脚本中如何获取命令的参数(1)
- linux 基本命令
- Lync 小技巧-32-无TMG-internet-Lync 2013 For iPhone如何做
- 懒加载未用就关闭sessio--n的异常---面试问的-org.hibernate.LazyInitializationException: could not initialize proxy -
- string 对象与 C 风格字符串的混用
- opencv中阈值函数处理
- keil uvision4和proteus联合调试
- little endian 和big endian问题全面解读