使用邻接表爆内存➕wa
查看原帖
使用邻接表爆内存➕wa
657556
TTjenny楼主2022/5/2 22:07
#include<iostream>
#include<cstring>
using namespace std;
const int N = 100010;
int h[N],e[N],ne[N],idx;
int n ,m;
int mm[N];

void add(int a ,int b){
    e[idx] = b , ne[idx] = h[a] , h[a] = idx++;
}

int dfs(int x){
    int ma = x;
    for(int i = h[x] ; i != -1 ; i = ne[i]){
        int j = e[i];
        ma = max(ma,dfs(j));
    }
    mm[x] = ma;
    return ma;
}

int main(){
    scanf("%d%d",&n,&m);
    memset(h,-1,sizeof h);
    for(int i = 0 ; i< m ;i++){
        int a ,b ;
        scanf("%d%d",&a,&b);
        add(a,b);
    }
    dfs(1);
    
    for(int i = 1 ; i <= n ;i++ )
        printf("%d ",mm[i]);
    
}
2022/5/2 22:07
加载中...