摘要:
这道题先判断给出的路能否让村庄联通,如果能够联通就输出最少要修多长的路,如果不能联通,就输出“?”。判联通时,用并查集,判断这些村庄能否在一个集合。 如果在一个集合,接着用prim算法求最小生成树。哈哈哈,幸亏我先前研究过并查集。很简单,简直是两个模板的综合。 0ms ,AC!好爽AC:#include<stdio.h>#include<string.h>int map[101][101];int low[101];int visit[101];int set[101];int n,m; //n条路, m个村儿int find(int x){int r;r=x;whil 阅读全文
摘要:
这道题还是用用prim,模板题。和1233畅通工程很类似。做1233时很顺手,做这道时,稍有不同。题中说明,有些路已经修好,不用再修了。求还要最少修多长的路才能全部连通。kao,刚开始想想歪了,不知道怎么处理那些已经联好的路。又是用邻接矩阵,又是用并查集,相邻好几个代码。都不行,最后看了一眼宪哥的代码。看到他把相连接的两条路之间的距离置为0, 一下就明白了。一改,过了。 中的来说,没变,还是prim算法。AC代码#include<stdio.h>#include<string.h>int map[101][101];int low[101];int visit[101] 阅读全文