1ac,4re,求助
查看原帖
1ac,4re,求助
363267
namehavenotname楼主2021/8/3 11:59

蒟蒻代碼

#include<stdio.h>

int N,M;
int x,y;
int Road[1000][1000];
int num[10000];

int FindRoad(int site){
  int times=0;
  int Fathers[N];
  
  if(num[site]!=-1){
    return num[site];
  }
  
  for(int i=0;i<=N;i++){
    if(Road[i][site]==1){
      Fathers[times]=i;
      times+=1;
      //FindRoad(&a[],&n[][],i);
    }
  }
  
  int Max=-1;
  int now;
  if(times==0){
    num[site]=0;
    return 0;
  }else{
    for(int i=0;i<times;i++){
      now=FindRoad(Fathers[i]);
      if(Max<now){
        Max=now;
      }
    }
    num[site]=Max+1;
    return Max+1;
  }
}
        

int main(){
  scanf("%d",&N);
  scanf("%d",&M);
  for(int i=0;i<M;i++){
    scanf("%d",&x);
    scanf("%d",&y);
    Road[x][y]=1;
  }
  
  for(int i=1;i<=N;i++) num[i]=-1;
  
  for(int i=1;i<=N;i++)
    FindRoad(i);
  
  for(int i=1;i<=N;i++) printf("%d\n",num[i]+1);
  return 0;
}
2021/8/3 11:59
加载中...