U81206题解

· · 个人记录

传送门

这是一个裸的链式前向星模板题……,不说了,标程如下:

#include<bits/stdc++.h>
using namespace std;
int n,m,f,i,cnt,j,x,y,z,he[10000001],ne[20000001],l[20000001],to[20000001];
int main()
{
    scanf("%d%d%d",&n,&m,&f);
    if (f==1)
    {
        for (i=1;i<=m;i++)
        {
            scanf("%d%d%d",&x,&y,&z);//有向图
            cnt++;
            ne[cnt]=he[x];
            to[cnt]=y;
            l[cnt]=z;
            he[x]=cnt;
        }
    }
    else
    {
        for (i=1;i<=m;i++)
        {
            scanf("%d%d%d",&x,&y,&z);//无向图
            cnt++;
            ne[cnt]=he[x];
            to[cnt]=y;
            l[cnt]=z;
            he[x]=cnt;
            cnt++;
            ne[cnt]=he[y];
            to[cnt]=x;
            l[cnt]=z;
            he[y]=cnt;
        }
    }
    for (i=1;i<=n;i++)if (he[i])
        for (j=he[i];j;j=ne[j])
        printf("%d %d %d\n",i,to[j],l[j]);//输出
    else printf("\n");
    return 0;
}

感觉没什么特殊的技巧……