• 链式前向星(邻接表)


    #include<vector>
    #include<cstdio>
    #include<cstdlib>
    #include<iostream>
    #define FORa(i,s,e) for(int i=s;i<=e;i++)
    #define FORs(i,s,e) for(int i=s;i>=e;i--)
    #define File(name) freopen(name".in","r",stdin),freopen(name".out","w",stdout);
    
    
    using namespace std;
    
    static char buf[100000],*pa=buf,*pb=buf;
    #define gc getchar() //pa==pb&&(pb=(pa=buf)+fread(buf,1,100000,stdin),pa==pb)?EOF:*pa++
    inline int read();
    
    
    
    const int N=100,M=200;
    struct Edge{
        int to,dis,next;
    }*v_edge;
    int n,m,num_edge,head[N];
    void Add_edge(int from,int to,int dis)
    {
        v_edge[++num_edge]=((Edge){to,dis,head[from]});
        head[from]=num_edge;
    }
    int main()
    {
        int from,to,dis;
        
        n=read(),m=read();
        v_edge=new Edge[2*m];
        FORa(i,1,m)
            from=read(),to=read(),dis=read(),Add_edge(from,to,dis),Add_edge(to,from,dis);    
        FORa(i,1,n)
        {
            int p=head[i];
            while(p)
            {
                cout<<v_edge[p].to<<" ";
                p=v_edge[p].next;
            }
            cout<<endl;
         } 
        return 0;
    }
    
    inline int read()
    {
        register int x(0);register int f(1);register char c(gc);
        while(c<'0'||c>'9') f=c=='-'?-1:1,c=gc;
        while(c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=gc;
        return x*f;
    }
    /*4 3
    1 2 1
    2 3 1
    3 4 1
    */
  • 相关阅读:
    AO-XXXX
    最基础的rpm命令
    yum插件
    adjtimex修改tick值用法举例
    [工具]iostat
    chrony配置介绍
    CentOS / RHEL 7 : Chrony V/s NTP (Differences Between ntpd and chronyd)
    NTP测试1
    shell使用eval进行赋值bc计算,bad substitution
    Free中的buffer和cache理解
  • 原文地址:https://www.cnblogs.com/SeanOcean/p/10376515.html
Copyright © 2020-2023  润新知