1 条题解

  • 0
    @ 2024-5-1 13:16:10
    #include <bits/stdc++.h>
    using namespace std;
    int n,e;
    struct egh{
    	int from,to,next;
    }a[100010];
    int k;
    int pre[1000010];
    void add(int u,int v){
    	a[++k]={u,v,pre[u]};
    	pre[u]=k;
    }
    struct Node{
    	int x,y;
    }p[100010];
    bool cmp(Node s1,Node s2){
    	return s1.x<s2.x||(s1.x==s2.x&&s1.y>s2.y);
    }
    int main(){
    	cin>>n>>e;
    	for (int i=1;i<=e;i++)cin>>p[i].x>>p[i].y;
    	sort(p+1,p+1+e,cmp);
    	for (int i=1;i<=e;i++)add(p[i].x,p[i].y);
    	for (int i=1;i<=n;i++){
    		if (pre[i]==0)continue;
    		cout<<i<<endl;
    		for (int j=pre[i];j!=0;j=a[j].next)cout<<a[j].to<<" ";
    		cout<<endl;
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    1076
    时间
    1000ms
    内存
    128MiB
    难度
    5
    标签
    递交数
    24
    已通过
    14
    上传者