两个模板:

kruskal

#include<stdio.h>
#include<queue>
#include<algorithm>
#include<iostream>
using namespace std;
const int maxn = ;
int f[maxn];
int find(int x) {
if (f[x] == x)return x;
else return(f[x] = find(f[x]));
}
bool same(int x, int y) {
return (find(x) == find(y));
}
void un(int x, int y) {
int u = find(x);
int v = find(y);
if (u == v)return;
f[u] = v;
}
struct edge {
int from, to;
long long w;
}e[maxn];
bool cmp(edge a, edge b) {
return a.w < b.w;
}
int main() {
int n, m;
while (cin >> m >> n) {
if (m == )break;
for (int i = ; i < m; i++) {
//int x, y, z;
cin >> e[i].from >> e[i].to >> e[i].w;
}
for (int i = ; i <= n; i++)f[i] = i;
sort(e, e + m, cmp);
int res = ;
for (int i = ; i < m; i++) {
if (same(e[i].from, e[i].to)) continue;
res += e[i].w;
un(e[i].from, e[i].to);
}
for (int i = ; i <= n; i++) {
if (!same(i, ))res = -;
}
if (res == -)cout << '?' << endl;
else cout << res<<endl;
}
}

prim


#include<stdio.h>
#include<queue>
#include<algorithm>
#include<iostream>
#include<vector>
using namespace std;
const int maxn = ;
struct edge {
int to;
long long w;
edge(int to = , long long w = ) :to(to), w(w) {}
bool operator<(const edge &a)const {
return w > a.w;
}
};
vector<edge> E[maxn];
bool vis[maxn];
priority_queue<edge> Q; long long prim() {
long long ret = ;
vis[] = ;
int sz = E[].size(); for (int i = ; i < sz; i++) Q.push(E[][i]);
while (!Q.empty()) {
edge t = Q.top(); Q.pop();
if (vis[t.to])continue;
ret += t.w; vis[t.to] = ;
int sz = E[t.to].size(); for (int i = ; i < sz; i++) Q.push(E[t.to][i]);
}
return ret;
} int main() {
int m, n;
while (cin >> m >> n) {
if (m == )break;
for (int i = ; i <= n; i++)E[i].clear(),vis[i]=;
while (!Q.empty()) Q.pop();
for (int i = ; i < m; i++) {
int a, b, c;
cin >> a >> b >> c;
E[a].push_back(edge(b, c));
E[b].push_back(edge(a, c));
}
int res = prim();
for (int i = ; i <= n; i++) if (!vis[i]) res = -;
if (res == -)cout << '?' << endl;
else cout << res << endl; }
}

畅通工程 HDU - 1863 最小生成树模板的更多相关文章

  1. 畅通工程 HDU - 1863

    省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).经过调查评估,得到的统计表中列出了有可能建设公路的若干条道 ...

  2. HDU 1875:畅通工程再续(最小生成树)

    畅通工程再续 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  3. HDU 1875 畅通工程再续 (最小生成树)

    畅通工程再续 题目链接: http://acm.hust.edu.cn/vjudge/contest/124434#problem/M Description 相信大家都听说一个"百岛湖&q ...

  4. poj 1251 poj 1258 hdu 1863 poj 1287 poj 2421 hdu 1233 最小生成树模板题

    poj 1251  && hdu 1301 Sample Input 9 //n 结点数A 2 B 12 I 25B 3 C 10 H 40 I 8C 2 D 18 G 55D 1 E ...

  5. HDU - 1232 畅通工程-并查集模板

    某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可). ...

  6. hdu 1874 畅通工程续(SPFA模板)

    畅通工程续 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  7. HDU-1232/NYOJ-608畅通工程,并查集模板题,,水过~~~

    畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) http://acm. ...

  8. L - 还是畅通工程 - hdu 1233

    Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达 ...

  9. 畅通工程 HDU - 1232

    某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接 ...

随机推荐

  1. SpringBoot------添加保存时自动编译插件

    .右键Java项目 .选择“Spring Tools” 3.选择“Add Boot DevTools” 4.每次使用Ctrl + S键时就会自动编译了 实际上是在Pom.xml文件中添加了如下Java ...

  2. 在eclipse中查看android源代码

    自己写了一个类MainAcvitivity extends Activity, 按F12(我把转到定义改成了F12的快捷键),转到Activity的定义,弹出下面这样的界面 就是说没有找到androi ...

  3. 原创:Eclipse安装Eclipse Color Themes插件后,编辑器背景颜色被改变

    如题,卸载Eclipse Color Themes插件后,背景颜色还是白色,蛋疼,修改.metadata\.plugins\org.eclipse.core.runtime\.settings中的or ...

  4. 使用CreateProcess创建新的process 并返回process运行结束返回值

    转自:http://blog.csdn.net/zgl7903/article/details/5975284 转载这篇主要是记住:获得create的新进程运行结束时的返回值的方法 如下:   #in ...

  5. DLL注入之Appinit_Dlls

    AppInit_DLLs is a mechanism that allows an arbitrary list of DLLs to be loaded into each user mode p ...

  6. 【消息队列】windows下安装RabbitMQ消息队列服务器

    RabbitMQ是什么 ? RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. 1:安装RabbitMQ需要先安装Erla ...

  7. Linux下grep命令查找带有tab(退格)的字符

    需要在日志文件统计删除的主帖,而日志文件是tab(退格)字符隔开的:假设日志文件名叫delete.log. 保存格式和保存的数据如下, 删除日期            帖子类型(11为主帖,12为回帖 ...

  8. jQuery缓存机制(一)

    1.首先看一下涉及到jQuery缓存机制的代码结构: // 定义一些jQuery内部的变量,方便后续使用 var data_user, data_priv, // 后续会被赋值为两个Data对象 rb ...

  9. EXCEL2010如何显示工作表中单元格内的公式

    以EXCEL 2010为例   打开含有公式的EXCEL表格文件,图中红圈所示就是单元格的公式,默认是显示计算结果:   我们依次找到“公式”-〉“公式审核”-〉并点击“显示公式”:   点击后, 有 ...

  10. javascript解析器原理

    浏览器在读取HTML文件的时候,只有当遇到<script>标签的时候,才会唤醒所谓的“JavaScript解析器”开始工作. JavaScript解析器工作步骤 1. “找一些东西”: v ...