社区讨论
求助
学术版参与者 2已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @lzt94a9q
- 此快照首次捕获于
- 2024/08/14 10:47 2 年前
- 此快照最后确认于
- 2024/08/14 12:56 2 年前
为什么并查集不能求单向图?
P2835 刻录光盘这题
CPP#include<iostream>
using namespace std;
int parent[1145],ans;
int find(int x)
{
if(x!=parent[x]) parent[x]=find(parent[x]);
return parent[x];
}
int main()
{
int i,j,t,n;
cin>>n;
for(i=1;i<=n;i++) parent[i]=i;
for(i=1;i<=n;i++)
{
while(1)
{
cin>>t;
if(t==0) break;
j=find(i);
if(j!=t)
{
parent[t]=j;
}
}
}
for(i=1;i<=n;i++)
{
if(i==find(i)) ans++;
}
cout<<ans;
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...