最小生成树
文章平均质量分 75
北狗最光阴1
这个作者很懒,什么都没留下…
展开
-
HDU 1031 Jungle Roads
这题就是最小生成树的模板题,可是这题的数据给的有点坑。 首先我不清楚给出的村庄是否就是按照从A开始的字母顺序排列,所以我就用一个exist布尔数组来标记这个村庄是否存在; 在者就是两个村庄之间可能有多条路,所以存储的时候应该存储最小的,可是题目没有这样的例子,哎! #include #include #include #include #include #include using name原创 2015-02-01 23:41:48 · 578 阅读 · 0 评论 -
HDU 1102 Constructing Roads
这题很显然用最小生成树来做。不过要稍微变化一下,一开始我打算用一个布尔数组来标记哪些村庄之间已经用道路连接,可是我发现写起来有点费劲,于是突然想到如果把已经修建的道路想象成0是不是就可以呢,仔细想了一下,貌似真的可以,提交之后果然过了。 #include #include #include #include #include #include using namespace std; const原创 2015-02-03 20:50:31 · 489 阅读 · 0 评论 -
POJ 1861 Network
这题就是用最小生成树中的kruskal算法的模板题。 #include #include #include #include #include using namespace std; const int N=1002; const int M=15002; const int inf=1<<28; struct edge { int u,v,cost; }es[M]; int原创 2015-02-21 19:49:58 · 373 阅读 · 0 评论 -
POJ 2485 Highways
只要把prim算法稍微改一下就可以了。 #include #include #include #include using namespace std; const int N=505; const int inf=1<<28; int cost[N][N],mincost[N]; bool used[N]; int n; int prim() { int _max=0;原创 2015-02-15 16:30:03 · 479 阅读 · 0 评论 -
ZOJ 1586 QS Network
这题还是用最小生成树的模板就可以解决,不过在边的值上面要稍微处理一下。 #include #include #include #include using namespace std; const int N=1000; const int inf=1<<28; int cost[N][N],mincost[N],brand[N]; bool used[N]; int n; int pr原创 2015-02-15 15:13:04 · 511 阅读 · 0 评论