1 solutions

  • 0
    @ 2024-12-13 16:07:03
    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e5+10,M=2*N;
    int h[N],e[M],ne[M],w[M],idx;
    void add(int a,int b,int c)
    {
    	e[idx]=b,w[idx]=c,ne[idx]=h[a],h[a]=idx++;	
    } 
    int main()
    {
    	int n,m;
    	cin>>n>>m;
    	memset(h,-1,sizeof h);//清空头节点 
    	for(int i=1;i<=m;i++)
    	{
    		int a,b,c;
    		cin>>a>>b>>c;
    		add(a,b,c);  //添加一条从a到b,边权为c的边
    	}
    	for(int i=1;i<=n;i++)
    	{
    		if(h[i]!=-1) //说明有点
    		{
    			cout<<i<<":";
    			for(int j=h[i];j!=-1;j=ne[j])
    			{
    				int k=e[j],weight=w[j];
    				printf("%d(%d) ",k,weight);
    			}	
    			cout<<endl;
    		} 
    	}
    	return 0;
    }
    
    
    • 1

    Information

    ID
    2120
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    5
    Tags
    (None)
    # Submissions
    1
    Accepted
    1
    Uploaded By