2 条题解
-
0
#include<bits/stdc++.h> using namespace std; int fa[1100]; int findfa(int x){return (fa[x]==x) ? fa[x] : fa[x]=findfa(fa[x]);} int main() { int n,m;scanf("%d%d",&n,&m); for(int i=1;i<=n;i++)fa[i]=i; int ans=0; for(int i=1;i<=m;i++) { int x,y;scanf("%d%d",&x,&y); int tx=findfa(x),ty=findfa(y); if(tx==ty)ans++;//当x和y的祖先相等时,说明x和y已经是连接的,所以当前边可以删 else fa[tx]=ty;//否则当前边要利用起来,起到合并(连接)两个团体的作用 } printf("%d\n",ans); return 0; } -
0
#include<bits/stdc++.h> using namespace std; int fa[1100]; int findfa(int x){return (fa[x]==x) ? fa[x] : fa[x]=findfa(fa[x]);} int main() { int n,m;scanf("%d%d",&n,&m); for(int i=1;i<=n;i++)fa[i]=i; int ans=0; for(int i=1;i<=m;i++) { int x,y;scanf("%d%d",&x,&y); int tx=findfa(x),ty=findfa(y); if(tx==ty)ans++;//当x和y的祖先相等时,说明x和y已经是连接的,所以当前边可以删 else fa[tx]=ty;//否则当前边要利用起来,起到合并(连接)两个团体的作用 } printf("%d\n",ans); return 0; }
- 1
信息
- ID
- 266
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 3
- 标签
- 递交数
- 177
- 已通过
- 91
- 上传者