社区讨论
???
P1137旅行计划参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @m61l3gtv
- 此快照首次捕获于
- 2025/01/18 10:43 去年
- 此快照最后确认于
- 2025/11/04 11:24 4 个月前
我也看不懂这是个啥,能改吗???
CPP#include<bits/stdc++.h>
using namespace std;
int n,m,in[200005],head[200005],num,dis[200005];
struct node
{
int to,next;
}s[10000005];
int add(int x,int y)
{
s[num++].next=head[x];
s[num].to=y;
head[x]=num;
return 0;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
{
int x,y;
cin>>x>>y;
in[y]++;
add(x,y);
}
queue<int>q;
for(int i=1;i<=n;++i)
{
if(in[i]==0)
{
q.push(i);
dis[i]=1;
}
}
while(!q.empty())
{
int u=q.front();
q.pop();
for(int i=head[u];i;i=s[i].next)
{
int k=s[i].to;
in[k]--;
if(in[k]==0)
{
q.push(k);
dis[k]=dis[u]+1;
}
}
}
for(int i=1;i<=n;++i)
{
printf("%d\n", dis[i]);
}
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...