社区讨论
为什么内存这么大...
P1536村村通参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mi6nm8ru
- 此快照首次捕获于
- 2025/11/20 07:49 4 个月前
- 此快照最后确认于
- 2025/11/20 07:49 4 个月前
3728ms / 557.19MB
CPP#include<iostream>
#include<stdio.h>
using namespace std;
int m,n,a,b,i,sum;
bool o[10000],s[10000];
int f[10000];
int find_(int a)
{
if (f[a]==0) return a; else return find_(f[a]);
}
int main()
{
m=-1;
while (m!=0)
{
sum=0;
scanf("%d",&m);
if (m==0) return 0;
scanf("%d",&n);
for (i=0; i<=10000; i++)
{
f[i]=0; o[i]=0; s[i]=0;
}
for (i=1; i<=n; i++)
{
scanf("%d%d",&a,&b);
o[a]=true;
o[b]=true;
f[b]=find_(a);
}
for (i=1; i<=m; i++)
{
if (o[i]==false) sum++;
}
for (i=1; i<=m; i++)
{
if (s[f[i]]==false) sum++;
s[f[i]]=true;
}
printf("%d\n",sum-2);
}
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...