Codeforces

来源:互联网 发布:三维效果图软件 编辑:程序博客网 时间:2024/05/03 22:14

算法+数据结构=程序     这道题看的别人的代码   我已开始用的是并查集做的没有做出来 我怀疑是有环状图  然后看别人的代码用的是dfs做的  代码量很小   使用的空间也是非常的小 

# include <stdio.h># include <string.h>int a[205][205];int b[205];void dfs(int k){int i;b[k]=1;for(i=1;i<=204;i++){if(a[k][i]){if(!b[a[k][i]])dfs(a[k][i]);}}}int main (){int j,count,n,ll=0,i,m,x,num;memset(b,0,sizeof(b));memset(a,0,sizeof(a));scanf("%d %d",&n,&m);for(i=1;i<=n;i++){scanf("%d",&num);if(num==0)ll++;for(j=1;j<=num;j++){scanf("%d",&x);a[i][n+x]=x+n;a[n+x][i]=i;}}count=0;for(i=1;i<=n;i++){if(!b[i]){dfs(i);count++;}}if(ll==n)printf("%d\n",ll);elseprintf("%d\n",count-1);return 0;}

把一道题转换为图是一件很困难的事  

原创粉丝点击