【求助】为啥第五个点一直寄啊
查看原帖
【求助】为啥第五个点一直寄啊
859183
ReverSouth楼主2023/1/2 02:40
#include <bits/stdc++.h>
using namespace std;

const int N = 500086;

long long n,m,u,v,t;
unsigned long long h[N], e[N], ne[N], idx,st[N];

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

bool cmp(unsigned long long a,unsigned long long b)
{
    return a<b;
}

int main()
{
    scanf("%lld",&t);
    while(t--)
    {
        idx=0;
        memset(h,-1,sizeof h);
        scanf("%lld %lld",&n,&m);
        for(int i=0;i<m;i++)
        {
            scanf("%lld %lld",&u,&v);
            add(u,v);
        }
        
        for(int i=1;i<=n;i++)
        {
            if(e[i]==0)printf("\n");
            else 
            {
                unsigned long long ans[N],sum=0;
                for (int j = h[i],k=0; j != -1; j = ne[j],k++)
                {
                    ans[k]=e[j];
                    sum++;
                }
                sort(ans,ans+sum);
                for(int j=0;j<sum;j++)printf("%lld ",ans[j]);
                printf("\n");
            }
        }
    }
    return 0;
}
2023/1/2 02:40
加载中...