本题的关键是要知道图论中的一个原理:无向图中, n个结点 至少需要 n-1条边,才能使各个结点相连。 有两种解法: 1.用递归遍历的方式,计算有多少个独立的连通的部分,我称为“簇”。需要移动的边就是 簇的个数减1。 2.使用并查集,计算有几个联通部分,有几条多余的边。如果多余的边小于联通部分,返回- ...
分类:
Web程序 时间:
2020-06-03 17:36:29
阅读次数:
81
图论算法(一)存图 我发现我的博客阅读量贼低,问小伙伴们,ta们都说这些博客太长了QAQ! 今天来个短亿点的(也短不了多少……) 进入正题,图论究竟是什么? 图论就是给你一张图,让你在这张图上进行各种操作,但是我们要进行操作之前,要先明白图是什么。 如果你还不了解图是什么,我这里稍微BB一两句,如果 ...
分类:
编程语言 时间:
2020-06-03 17:27:39
阅读次数:
75
Dijkstra也叫迪杰斯特拉,是典型最短路径算法,计算一个起始节点到路径中其他所有节点的最短路径的算法和思想。在一些专业课程中如数据结构,图论,运筹学等都有介绍。其思想是一种基础的求最短路径的算法,通过基础思想的变化可以解决很多复杂问题,如导航线路,动态规划等。 1|0Dijkstra 算法思想介 ...
分类:
编程语言 时间:
2020-06-02 13:13:16
阅读次数:
52
客户常常提到思维导图,喜欢它的结构展示方式,和交互的友好,从图论的角度看,思维导图本质上是一种树,有一个根节点(主题)出发,联想到其他话题,于是分支开花,再分支,有时候也会构成网络结构,由子分支联想到另一个已有分支,但通常不破坏原有结构,常见的思维导图如下 XMind制作的思维导图 制作思维导图应用 ...
分类:
Web程序 时间:
2020-05-29 13:59:10
阅读次数:
306
/* 从后往前依次确定,i->j直接连边只会增加一种路线 */ #include<bits/stdc++.h> using namespace std; #define N 505 char s[N][N]; int n,w[N][N],mp[N][N],t[N][N]; int main(){ c ...
分类:
其他好文 时间:
2020-05-24 16:53:52
阅读次数:
69
分析 一个图论题,其实没什么特别难的点。 ~~英文题首先我们要读懂题意~~ 这道题大意就是求最短路的条数,如果次短路和最短路只差1,那么也把次短路的条数加上。 求最短路应该都会求,一个Dij就完了,那么条数怎么办。 之前也做过类似的题,如果要更新最短路,那么更新完最短路后,次短路就会更新为原来的最短 ...
分类:
其他好文 时间:
2020-05-24 11:51:05
阅读次数:
43
倍增 $\tt LCA$ "ZJOI2012 灾难" "代码" 建一棵树,一个节点灭绝即子树灭绝。按拓扑序加入节点。如果该节点无前驱,由源点向它连边;否则由其前驱的最近公共祖先向它连边。 ...
分类:
其他好文 时间:
2020-05-23 13:05:44
阅读次数:
53
[toc] 前言 你以为你学的是JML,你以为你在学规格,你以为你上的课程叫OO。 哦,这些都没有错。 什么程序不能掺点算法题呢?\\ _ / 关于JML JML是什么 JML(java modeling language)是一种描述代码行为的语言,包括前置条件、副作用等等。JML是一种行为接口规格 ...
分类:
其他好文 时间:
2020-05-22 21:03:00
阅读次数:
60
"ACM_ICPC 2017 Asia Nanning M" 求给定的有向无环图,互不到达的最大点集的大小。 $T\le500,\,n\le100,\,m\le n (n 1)/2,\;\sum m\le500000$ 。 做法:对每个点与其能到达的点连边,得到一个新的有向图,对这个有向图求最大二分 ...
分类:
其他好文 时间:
2020-05-21 21:08:28
阅读次数:
64
$Floyd$算法 " _例题(一本通P1342)_ " $O(n^3)$ 设状态$f[k][i][j]$:从i到j通过前k个点中的若干个的最短路径和 对于第k个中转点 : 走:$f[k 1][i][k]+f[k 1][k][j]$ 不走:$f[k 1][i][j]$ 显然,可以压缩到二维 未完待续 ...
分类:
编程语言 时间:
2020-05-21 09:45:40
阅读次数:
52