挑战最短的可食用代码!
  • 板块P1137 旅行计划
  • 楼主qwe777
  • 当前回复3
  • 已保存回复3
  • 发布时间2025/2/1 22:00
  • 上次更新2025/2/2 13:52:44
查看原帖
挑战最短的可食用代码!
1288382
qwe777楼主2025/2/1 22:00
#include<bits/stdc++.h>
using namespace std;
struct node{
	int to,next;
}a[200001];
int n,m,h[100001],du[100001],vt[100001],sy[100001],num,x,y,sum=0;
void add(int x,int y){num++;
	a[num].to=y;
	a[num].next=h[x];
	h[x]=num;
	du[y]++;vt[x]++;
}
int dfs(int s){
	if(!vt[s])	{sy[s]=1;return 1;}
	if(sy[s])	return sy[s];
	for(int i=h[s];i;i=a[i].next) sum=max(sum,dfs(a[i].to));
	sy[s]=sum+1;
	return sy[s];
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>x>>y;
		add(y,x);
	}
	for(int i=1;i<=n;i++) if(!du[i]) dfs(i);
	for(int i=1;i<=n;i++) cout<<sy[i]<<endl;
	return 0;
}

29行 ,你比我长,我就死亡

2025/2/1 22:00
加载中...