Home
Problem
Status
Contest
User
Group
Forum
Article
Register
Login
{"likeCnt":0,"createTime":"Jan 28, 2018 10:41:01 PM","author":"201730210321","viewCnt":1010,"id":333,"title":"链式前向星","trustable":false,"dislikeCnt":0,"content":"```\n#include\u003ciostream\u003e\n#include\u003ccstdio\u003e\n#include\u003ccstring\u003e\n#include\u003calgorithm\u003e\n#include\u003cvector\u003e\n#include\u003cqueue\u003e\nusing namespace std;\nstruct node{\n\tint to,nex,val;\n}edge[200005];\nint head[100005],cnt;//head[i]代表 以i结点开始的第一条边的下标 \nvoid add(int u,int v,int w){\n\tedge[cnt].to\u003dv;\n\tedge[cnt].val\u003dw;\n\tedge[cnt].nex\u003dhead[u];\n\thead[u]\u003dcnt;\n\tcnt++; \n}\nvoid dfs(int t,int f,int w){\n\tfor(int i\u003dhead[t];~i;i\u003dedge[i].nex){\n\t\tint v\u003dedge[i].to;\n\t\tif(v\u003d\u003df)continue;\n\t\tdis[v]\u003dw+edge[i].val;\n\t\tdfs(v,t,w+edge[i].val);\n\t}\n}\nint main(){\n\tint n,m,i,j;\n\tmemset(head,-1,sizeof(head));\n\tcin\u003e\u003en\u003e\u003em;\n\tfor(i\u003d1;i\u003c\u003dm;i++){\n\t\tint x,y,w;\n\t\tcin\u003e\u003ex\u003e\u003ey;\n\t\tw\u003d1;\n\t\tadd(x,y,w);\n//\t\tadd(y,x,w);\n\t\t// add(x,y,w)\n\t}\n\tdfs(1,1,0);\n\treturn 0;\n}\n```"}