Kruscal Template

Kruscal  elimination :

很裸的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 = 10500;

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 = 1; 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 = 0;
    for(i = 1; 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-1){
            printf("%d\n",edge[i].value);
            break;
        }
    }
}
int main(){
   int i,j;
   while(scanf("%d%d",&n,&m) != EOF){
       for(i = 1; i <= m; ++i)
           scanf("%d%d%d",&edge[i].s,&edge[i].e,&edge[i].value);
       sort(edge + 1, edge + 1 + m, cmp);
       init();
       kruskal();
   }
   return 0;
}

时间: 2024-10-19 17:04:23

Kruscal Template的相关文章

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 <algori

「SDOI2019」世界地图(并查集+kruscal)

Address loj3112 luogu P5360 bzoj5531 Solution 对于 \(1\leq i\leq m\),考虑分别预处理经度在 \([1,i]\),\([i,m]\) 的点的 \(\text{MST}\).询问的时候合并 \([1,l-1]\) 和 \([r+1,m]\) 即可. 先考虑怎么预处理 \([1,i]\) 的 \(\text{MST}\)(\([i,m]\) 同理). 假设我们已经有了 \([1,i-1]\) 的 \(\text{MST}\),现在要在这里

NET Core项目定义Item Template

NET Core项目定义Item Template 作为这个星球上最强大的IDE,Visual Studio不仅仅提供了很多原生的特性,更重要的是它是一个可定制的IDE,比如自定义Project Template和Item Template就是一个非常有用的扩展点.这里我们主要关注Item Template,它时我们可以在"Add new Item"对话框中添加我们自定义的Item(如下图所示).如果不了解Item Template,Scott Gu的文章. 我们之前自定义了一些Ite

手把手教你创建Azure ARM Template

Azure的ARM模式在中国已经落地了.在ARM模式中,通过ARM的Template批量的创建各种资源是与ASM模式的最大的区别之一.目前Azure ARM的Template数量已经越来越多,更多的客户会选择采用Template的模式进行资源的部署: 在前面的文章中已经介绍了如何通过已有的Template修改成你所需要的模板,请参考: http://www.cnblogs.com/hengwei/p/5634380.html 本文将一步一步的创建一个最简单的存储账户的ARM Template,并

Backbone 模板 underscore template默认的转义符&lt;%= %&gt; 与jsp的冲

先定义转义符,因为默认的转义符<%= %> 与jsp的冲突(如果js模板写在jsp页面中)       _.templateSettings = { interpolate : /\{\{(.+?)\}\}/g }; 下面就可以这样写 <script type="text/template" id="detailedBar-template"> <div class='title'> <span class='label'&

ansible的playbook配置及template模板的使用

前言: 学习下ansible的playbooks的状态配置管理,说来puppet saltstack都有类似的叫法,只是ansible的叫法更犀利,我当时一看playbook还以为是花花公子的playboy.要使用ansible就要深入学习playbook配置及模板. 注:到底是playbook还是playbooks.... 先把官网的简单几个语法给说明下. #这个是你选择的主机 - hosts: webservers #这个是变量   vars:     http_port: 80     m

Spring mvc 中使用ftl引用共通文件出错 FreeMarker template error: Error reading included file &quot;/WEB-INF/ftl/common/errormessage.ftl&quot;

初次接触spring mvc,想做一个小的练习项目,结果在ftl文件中引用其它的共通ftl文件时出错. 目录结构如图所示,想在login.ftl中引用common下的errormessage.ftl <#include '/WEB-INF/ftl/common/errormessage.ftl' /> 结果画面报错: FreeMarker template error: Error reading included file "/WEB-INF/ftl/common/errormes

Spring Boot使用thymeleaf模板时报异常:template might not exist or might not be accessible by any of the configured Template Resolvers

错误如下: template might not exist or might not be accessible by any of the configured Template Resolvers 解决方法: 1.确定模板是否在默认templates文件夹里面,并且路径要和返回的View名字一致. 2.new ModelAndView("/log/loglist");这样写是不对的,应该把开头的斜杠去掉,改成:new ModelAndView("log/loglist&

HDOJ 1217 Floyed Template

1 #include <iostream> 2 #include <stdio.h> 3 #include <string.h> 4 #include <cstring> 5 #include<map> 6 using namespace std; 7 8 map<string,int>name; 9 const int INF = 1000000; 10 const int MAXSIZE = 1005; 11 const int