Laughing

 

2011年10月24日

poj 1611 边输入边合并

摘要: 题目大意: 一共有n个学生(编号0 至 n-1),m个组,一个学生可以同时加入不同的组。现在有一种传染病,如果一个学生被感染,那么和他同组的学生都会被感染。现在已知0号学生被感染,问一共有多少个人被感染。思路:刚开始我想,先输入将他们合并入一个集合m,如果遇到0则将所有的放入0这个集合,再查找。总之很难实现。 看了代码后,才发现别人思路的高明之处:一边输入,一边合并,最后输出b[0]即可。代码:#include<stdio.h>short a[30000],b[30000];int f(int i){ if(a[i]==i) return i; return a[i]=f(a[i] 阅读全文

posted @ 2011-10-24 13:25 巨富一生 阅读(115) 评论(0) 推荐(0) 编辑

导航