[2016-01-27][kruskal]

[2016-01-27][kruskal]

最小生成树 能保证最大边最小,最小边最小  


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

int n;

const int maxn = 110;

struct Edge{

    int u,v;

    long long c;

    bool operator < (const Edge & a)const

    {

        return c < a.c;

    }

}e[maxn*maxn/2];

int fa[maxn];

void ini(int n){

    for(int i = 0;i < n + 5;i++)

        fa[i] = i;

}

int fnd(int x){

    return x == fa[x] ? x : (fa[x] = fnd(fa[x]));

}

int kruskal(){

    sort(e,e + n*(n-1)/2);

    int ct = 0;

    long long res = 0;

    ini(n);

    for(int i = 0;i < n*(n-1)/2;i++)

    {

        if(ct == n - 1)

            break;

        int u = e[i].u,v = e[i].v;

        u = fnd(u);

        v = fnd(v);

        if(u != v){

            fa[u] = v;

            res += e[i].c;

            ct++;

        }

    }

    return res;

}

来自为知笔记(Wiz)

时间: 2024-12-29 23:33:10

[2016-01-27][kruskal]的相关文章

[官方软件] Easy Sysprep v4.3.29.602 【系统封装部署利器】(2016.01.22)--skyfree大神

[官方软件] Easy Sysprep v4.3.29.602 [系统封装部署利器](2016.01.22) Skyfree 发表于 2016-1-22 13:55:55 https://www.itsk.com/forum.php?mod=viewthread&tid=362766&highlight=Easy%2BSysprep [官方软件] Easy Sysprep v4.3.29.602 [系统封装部署利器](2016.01.22) [Easy Sysprep]概述:Easy Sy

2016.01工作日志

2016.01.01 元旦在家,八点醒,开始继续阅读「30日でできる!OS自作入門」.主要目的,加深对os和cpu的理解.另外花些时间又重温王爽的<汇编语言>.今天,最大收获还是感官上体会系统底层:比如往内存xxxx里写入0或者1就可以实现操作系统对xxxx部件的控制.另外,看到了「30日でできる!OS自作入門」中自制操作系统的内存图,就可以知道,内存这种东西,就是操作系统,或者cpu规划的.内存本身是不分段的.内存的哪一段是ram哪一段是bios显卡,改变其地址值就可以实现特定效果. 对于这

海涛师兄指的路--指点汇总--各种装逼利器---15.01.27

14.11.10--科学楼226 C primer plus 代码敲两边许英杰老师 ---------------------------- www.gfsoso.com谷粉搜搜正点原子.安富莱(bbs.armfly.com) 资料: 别人的教程:原子的.野火的 user manual(中文用户手册) datasheet -----------------------------------1.stm32启动---->搞懂时钟(1)2.流水灯(1)3.串口.(1)4.stm32+emwin+uc

2016.01.18-2016.01.21盲审通关修改

请以上同学在1月21日(星期四)之前将以下材料交到研究生科: 1.装订好的硕士学位论文3本(注意:封面上作者姓名和指导教师隐去.致谢隐去.硕士学位期间发表的全部的论文作者隐去): 2.普通信封上写明评阅费:200元.邮寄费:22元,并将相应的钱款分别装入以上三个信封(普通信封,一共:200*3+22*3元): 3.从研究生管理信息系统中导出的“论文评阅书”封面上的作者姓名和指导教师姓名隐去:交三份“论文评阅书”和三份“学位论文评阅聘书”. 4.交三份“EMS”信封和一个装有20×3=60元邮寄费

工作周记 - 第六周 (2016/06/27 - 2016/07/01)

1.搭建定时任务quartz 本来是打算把定时任务放入后台管理中,这样目前没问题,但是弱后期加入权限管理-shiro,那么肯定有冲突的,原因是最新版的shiro会使用quartz-1.6版本,而最新的quartz已经到了2.3 有人索性把quartz版本降到了1.6,这样就没问题,我想这样不好,2.3的新功能都用不到,1.6多多少少肯定会有一定bug,所以就另开了一个项目作为定时任务,虽然现阶段的任务量少,但是后期一定会多起来,比如定时报表,定时跑批等等 这样也省的把原来的任务再分离出来,这么做

2016/01/14开始学习git:标签管理:创建标签

标签也是版本库的一个快照指向某个commit的指针(分支可以移动,标签不能移动) 切换到需要打标签的分支上git tag <name>就可以打一个新标签: $ git tag v1.0 git tag查看所有标签: $ git tagv1.0 打之前提交的版本的commit需要当时的commit ID$ git tag v0.9 93ddf60 查看tag$ git tagv0.9v1.0 标签不是按时间顺序列出,而是按字母排序的.可以用git show <tagname>查看标签

2016.01日志

1.4 1. 学习了设置断点,断点可以更好查看程序的运行情况.执行程序时会运行到第一个断点程序停住,这时可以观察,运行到这里程序的变量值,接下来按f6,会运行到下一行代码,按f8会运行到下一个断点,断点在哪里,就能观察哪里的变量值,以此来查看程序运行情况. 全选,右键选择debug,再选择java application,在左边需要断点的地方双击左键,就设置好断点了. 1.5 1.代码格式化,让代码更加的清楚,全选,右键,选择source,再选择format.快捷键是ctrl+shift+F.

2016/1/27 1, File 创建 删除 改名 换路径 2,输出流 不覆盖 换行输入 3,输入流

1, File  创建  删除  改名  换路径 1 package Stream; 2 3 import java.io.File; 4 5 import java.io.IOException; 6 7 public class OutIn { 8 9 /** 10 * 输入输出 11 */ 12 public static void main(String[] args) { 13 File f1 = new File("d:/book.txt"); // 第一种 实例化文件名称

2016.01.19 UITextField

1.placeholder(占位符,就是默认提示文本) eg:_loginTextField.placeholder = @"QQ号/手机号/邮箱"; 2.borderStyle(设置边框类型) eg:_loginTextField.borderStyle = UITextBorderStyleRoundedRect; 各种类型: typedef NS_ENUM(NSInteger, UITextBorderStyle) { UITextBorderStyleNone, UITextB

2016.9.27小程序---数据库练习1

1 -- createbbc, 1, 50 2 DROP TABLE bbc; 3 4 5 CREATE INDEX bbc_region ON bbc(region); 6 7 GO 8 -- tabbbc, 1, 50 9 INSERT INTO bbc VALUES ('Afghanistan','South Asia',652225,26000000,NULL); 10 INSERT INTO bbc VALUES ('Albania','Europe',28728,3200000,66