#include<stdio.h> #include<string.h> int h[602],b; struct st { int next,v,s; }st[100000]; void init() { b=1; memset(h,0,sizeof(h)); } void add(int ne,int v,int s) { st[b].v=v; st[b].s=s; st[b].next=h[ne]; h[ne]=b++; /*st[b].v=ne; st[b].s=0; st[b].next=h[v]; h[ne]=b++;*/ } void cx(int x) { int i; printf("%d\n",h[x]); for(i=h[x];i!=0;i=st[i].next) { printf("%d %d %d\n",x,st[i].v,st[i].s); } } int main() { int a; scanf("%d",&a); init(); while(a--) { int m,n,z; scanf("%d%d%d",&m,&n,&z); add(m,n,z); } cx(1); return 0; }
主要是查找从一个点出发到所有点的有路的点。。所以要把前点相同的边连在一起。。。
邻接表模版c+
最新推荐文章于 2023-09-16 14:39:41 发布