首页 新闻 赞助 找找看

代码是怎么理解的?

-1
[待解决问题]

#include<cstdio.h>
#include<cstring.h>
#include<vector>
using namespace std;
int fa[10005];
int findest(int x){
 return fa(x)==-1?x:fa(x)findest(fa(x));
}
int bind(int u,int v){
int fu=findset(u);
int fv=findset(v);
if(fu!=fv){
fa[fu]=fv;
return 1;
}
return 0;
}
int main(int argc,char*argv[])
{
 int n,m,i;
 while(scanf("%d%d",&m,&n)==2)
 {
  memset(fa,-1,sizeof(fa));
  vector<pair<int,int>>vc;
  for(i=0;i<n;i++)
  {
   int x,y;
   scanf("%d%d",&x,&y);
vc.push_back(nake_pair(x,y));
  }
  vector<int>res;
  int cnt=n;
  res.push_back(cnt);
  for(i=n-1;i>=1;i--)
  {
   cnt-=bind(vc[i].frist,vc[i].second);
   res.push_back(cnt);
  }
  for(i=res.size()-1;i>=0;i--)
   printf("%d\n",res[i]);
 }
 return 0;
}
  

Yingyingyang的主页 Yingyingyang | 菜鸟二级 | 园豆:210
提问于:2017-02-25 12:50
< >
分享
所有回答(2)
0

一行一行看

吴瑞祥 | 园豆:29449 (高人七级) | 2017-02-25 13:31
0

一个连通图,每次加入一条边后讯问独立块(两个块之间没有连边)的数量

WDZRMPCBIT | 园豆:204 (菜鸟二级) | 2017-02-25 21:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册