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的更多相关文章

  1. IDEA04 工具窗口管理、各种跳转、高效定位、行操作、列操作、live template、postfix、alt enter、重构、git使用

    1 工具窗口管理 所有的窗口都是在view -> tools windows 下面的,这些窗口可以放在IDEA的上下左右各个位置:右键某个窗口后选择move to 即可进行位置调整 2 跳转 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 ...

  3. jdbc事务、连接池概念、c3p0、Driud、JDBC Template、DBUtils

    JDBC 事务控制 什么是事务:一个包含多个步骤或者业务操作.如果这个业务或者多个步骤被事务管理,则这多个步骤要么同时成功,要么回滚(多个步骤同时执行失败),这多个步骤是一个整体,不可分割的. 操作: ...

  4. Centos 7 Docker、docker-compose、Registrator、Consul、Consul Template和Nginx实现高可扩展的Web框架

    安装所需软件 Docker Docker-compose 配置docker-compose.yml文件内容如下: #load balancer will automatically update th ...

  5. 从外部访问 Template (模板)的控件、获取它的属性值

    DataTemplate 和 ControlTemplate 两个类均派生自 FrameWorkTemplate类.这个类有个 FindName方法 供我们查询内部控件.  ControlTempla ...

  6. Django Template语法中 OneToOne、ForeignKey 外键查询

    主表的Models的结构 class A(models.Model): username = models.CharField(max_length=32, verbose_name='用户名称') ...

  7. WPF基础知识、界面布局及控件Binding(转)

    WPF是和WinForm对应的,而其核心是数据驱动事件,在开发中显示的是UI界面和逻辑关系相分离的一种开放语言.UI界面是在XAML语言环境下开发人员可以进行一些自主设计的前台界面,逻辑关系还是基于c ...

  8. WPF基础知识、界面布局及控件Binding

    WPF是和WinForm对应的,而其核心是数据驱动事件,在开发中显示的是UI界面和逻辑关系相分离的一种开放语言.UI界面是在XAML语言环境下开发人员可以进行一些自主设计的前台界面,逻辑关系还是基于c ...

  9. 《Play for Java》学习笔记(三)template+Message

    说明: 这是本书的第八章内容,由于项目需要,提到前面来看啦~~~O(∩_∩)O 一.模板template的定义 Play中的模板是html代码和Scala代码的混合而成的,其中Scala代码以@开头, ...

随机推荐

  1. ssma for oracle

    SQL Server Migration Assistant (SSMA) for Oracle lets you quickly convert Oracle database schemas to ...

  2. Latex调整行距

    修改行间距的方法: \usepackage{setspace}%使用间距宏包 \begin{document} \begin{spacing}{2.0}%%行间距变为double-space 双倍行距 ...

  3. [转]JSon数据解析的四种方式

    转至http://blog.csdn.net/enuola/article/details/7903632 作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有的js ...

  4. freebsd

    #cd /usr/ports/devel/binutils && make install

  5. C# 读书笔记之访问虚方法、重写方法和隐藏方法

    C#允许派生类中的方法与基类中方法具有相同的签名:基类中使用关键字virtual定义虚方法:然后派生类中使用关键字override来重写方法,或使用关键字new来覆盖方法(隐藏方法). 重写方法用相同 ...

  6. 为什么Lisp没有流行起来

    很久以前,这种语言站在计算机科学研究的前沿,特别是人工智能的研究方面.现在,它很少被用到,这一切并不是因为古老,类似古老的语言却被广泛应用.其他类似的古老的语言有??FORTRAN. COBOL. L ...

  7. MyEclipse 怎样手动编译整个项目

    去掉自动编译的对勾,项目上就有build project,在菜单project->>build automatically. MyEclipse 菜单 Project->Build ...

  8. 转:说说angularjs中的$parse和$eval

    说说AngularJS中的$parse和$eval AngularJS的初学者常常会对$parse和$eval两个内建服务感到有些困惑,今天我们就来说说AngularJS中的$parse和$eval. ...

  9. CMake 教程

    CMake是一个跨平台的程序构建工具,比如起自己编写Makefile方便很多. 介绍:http://baike.baidu.com/view/1126160.htm 本文件不介绍CMake的基本语法, ...

  10. Oracle 日期时间

    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from goods t insert into goods (id,createdate) value ...