Kruscal 、 Prime Template
Kruscal Template :
很裸的Kruscal Template(求最小生成树中最长路,即最短路中最长路)
//#pragma comment(linker, "/STACK:16777216") //for c++ Compiler
#include <stdio.h>
#include <iostream>
#include <climits>
#include <cstring>
#include <algorithm>
#define ll long long
using namespace std; const int INF = 0x3f3f3f3f;
const int MAX = ; int root[MAX],n,m,cnt;
struct Edge{
int s,e;
int value;
}edge[MAX]; bool cmp(Edge a, Edge b){
return a.value < b.value;
} void init(){
for(int i = ; i <= n; ++i)
root[i] = i;
} int find(int x){
return root[x] == x ? x : (root[x] = find(root[x]));
} void merge(int a,int b){
if(a < b)
root[b] = a;
else
root[a] = b;
} void kruskal(){
int i,j;
cnt = ;
for(i = ; i <= m; ++i){
int a = find(edge[i].s);
int b = find(edge[i].e);
if(a != b){
merge(a,b);
++cnt;
}
if(cnt >= n-){
printf("%d\n",edge[i].value);
break;
}
}
}
int main(){
int i,j;
while(scanf("%d%d",&n,&m) != EOF){
for(i = ; i <= m; ++i)
scanf("%d%d%d",&edge[i].s,&edge[i].e,&edge[i].value);
sort(edge + , edge + + m, cmp);
init();
kruskal();
}
return ;
}
Prime Template :
备注: map 初始化为 INF 无穷大
double prim(){
bool vis[MAXN];
memset(vis, , sizeof(vis));
double dis[MAXN];
double ans = ;
int i,j;
vis[] = true;
for(i = ; i <= n; ++i)
dis[i] = map[][i];
for(i = ; i < n; ++i){
int temp = INF, flag;
for(j = ; j <= n; ++j){
if(!vis[j] && dis[j] <= temp){
temp = dis[j];
flag = j;
}
}
vis[flag] = true;
ans += dis[flag];
for(j = ; j <= n; ++j){
if(!vis[j] && map[flag][j] < dis[j])
dis[j] = map[flag][j];
}
}
return ans;
}
Kruscal 、 Prime Template的更多相关文章
- IDEA04 工具窗口管理、各种跳转、高效定位、行操作、列操作、live template、postfix、alt enter、重构、git使用
1 工具窗口管理 所有的窗口都是在view -> tools windows 下面的,这些窗口可以放在IDEA的上下左右各个位置:右键某个窗口后选择move to 即可进行位置调整 2 跳转 2 ...
- Miller_Rabin、 Pollard_rho Template
Multiply and pow Function: //计算 (a*b)%c. a,b都是ll的数,直接相乘可能溢出的 // a,b,c <2^63 ll mult_modq(ll a,ll ...
- jdbc事务、连接池概念、c3p0、Driud、JDBC Template、DBUtils
JDBC 事务控制 什么是事务:一个包含多个步骤或者业务操作.如果这个业务或者多个步骤被事务管理,则这多个步骤要么同时成功,要么回滚(多个步骤同时执行失败),这多个步骤是一个整体,不可分割的. 操作: ...
- Centos 7 Docker、docker-compose、Registrator、Consul、Consul Template和Nginx实现高可扩展的Web框架
安装所需软件 Docker Docker-compose 配置docker-compose.yml文件内容如下: #load balancer will automatically update th ...
- 从外部访问 Template (模板)的控件、获取它的属性值
DataTemplate 和 ControlTemplate 两个类均派生自 FrameWorkTemplate类.这个类有个 FindName方法 供我们查询内部控件. ControlTempla ...
- Django Template语法中 OneToOne、ForeignKey 外键查询
主表的Models的结构 class A(models.Model): username = models.CharField(max_length=32, verbose_name='用户名称') ...
- WPF基础知识、界面布局及控件Binding(转)
WPF是和WinForm对应的,而其核心是数据驱动事件,在开发中显示的是UI界面和逻辑关系相分离的一种开放语言.UI界面是在XAML语言环境下开发人员可以进行一些自主设计的前台界面,逻辑关系还是基于c ...
- WPF基础知识、界面布局及控件Binding
WPF是和WinForm对应的,而其核心是数据驱动事件,在开发中显示的是UI界面和逻辑关系相分离的一种开放语言.UI界面是在XAML语言环境下开发人员可以进行一些自主设计的前台界面,逻辑关系还是基于c ...
- 《Play for Java》学习笔记(三)template+Message
说明: 这是本书的第八章内容,由于项目需要,提到前面来看啦~~~O(∩_∩)O 一.模板template的定义 Play中的模板是html代码和Scala代码的混合而成的,其中Scala代码以@开头, ...
随机推荐
- ssma for oracle
SQL Server Migration Assistant (SSMA) for Oracle lets you quickly convert Oracle database schemas to ...
- Latex调整行距
修改行间距的方法: \usepackage{setspace}%使用间距宏包 \begin{document} \begin{spacing}{2.0}%%行间距变为double-space 双倍行距 ...
- [转]JSon数据解析的四种方式
转至http://blog.csdn.net/enuola/article/details/7903632 作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有的js ...
- freebsd
#cd /usr/ports/devel/binutils && make install
- C# 读书笔记之访问虚方法、重写方法和隐藏方法
C#允许派生类中的方法与基类中方法具有相同的签名:基类中使用关键字virtual定义虚方法:然后派生类中使用关键字override来重写方法,或使用关键字new来覆盖方法(隐藏方法). 重写方法用相同 ...
- 为什么Lisp没有流行起来
很久以前,这种语言站在计算机科学研究的前沿,特别是人工智能的研究方面.现在,它很少被用到,这一切并不是因为古老,类似古老的语言却被广泛应用.其他类似的古老的语言有??FORTRAN. COBOL. L ...
- MyEclipse 怎样手动编译整个项目
去掉自动编译的对勾,项目上就有build project,在菜单project->>build automatically. MyEclipse 菜单 Project->Build ...
- 转:说说angularjs中的$parse和$eval
说说AngularJS中的$parse和$eval AngularJS的初学者常常会对$parse和$eval两个内建服务感到有些困惑,今天我们就来说说AngularJS中的$parse和$eval. ...
- CMake 教程
CMake是一个跨平台的程序构建工具,比如起自己编写Makefile方便很多. 介绍:http://baike.baidu.com/view/1126160.htm 本文件不介绍CMake的基本语法, ...
- Oracle 日期时间
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from goods t insert into goods (id,createdate) value ...