北大ACM暑期培训课程目录(三)

本文出自:http://blog.csdn.net/svitter

一.图的生成树

.必然含有n-1条边。

.无向带权图。

.如何求最小生成树。

.prime | kruskal

Prime: 从点里面找一个最短的边。

kruskal: 从边里面找。

.密集图使用邻接矩阵来存储。

.稀疏图用邻接表来存储。

.开一个邻接表,一个vector的一维数组。

时间复杂度(ElogV)

一般情况下邻接表更加优秀

题目:poj1258(邻接矩阵)

使用prime+堆完成。priority_queue(就是二叉堆)(当初不做错,也不知道)

.kruskal算法

.构造过程

选权值最小的边,利用并查集,判断是否有回路

构造边的集合。

排序的函数:规定权值小的放在前面.

sort();

题目:POJ2349 Arctic_Network

.次小生成树

.给定的图最小生成树是否唯一。

.求出次小生成树,是否权值于最小生成树

.最小生成树的邻集里包含次小生成树。

.如何从一个最小生成树生成一个次小生成树?

.T0是一颗次小生成树,T(n-1)一定是次小生成树且跟t一条边。

.最优生成树

二.最短路径

.一次求所有的最短路径

.单元最短路 Dijkstra‘s有向无向图。

*没有负权

.贪心思想。p是最短路已经求出的点。离S最近的点

.一开始就是空

.dijkstra不适用于无向图

例题:POJ3159 Candies

*Bellman-Ford算法

也是求单元最短路,可以处理有向图负权边。

不能处理带。负环。负值回路。(负无穷)

构建一个最短路径长度序组.

dist[]为滚动数组

POJ3259

*Floyd_alogrithm

用二维数组存边

*SPFA算法

SPFA算法利用队列来动态更新最小值。

*Floyd_alogrithm

O(n^3)时间复杂度。

三.强连通分支

Korasaju算法
"忽略

强连通分支:

最大连通子图。任意顶点互相可达,则是强连通的。

极大强连通子图就是强连通分支。

有向图出度为0,在任何点都可以出发可达。

无环 “有向无环图”

POJ2186

求出所有的连通分量。

有向无环图DAG/无向无环图:树;

POJ1236

加边变成强连通图。

有向图强连通分支 Taijan算法

有向图利用深度优先搜索就是搜索树。dfn值。

时间: 2024-08-13 14:49:07

北大ACM暑期培训课程目录(三)的相关文章

北大ACM暑期培训课程目录(四)

本文出自:http://blog.csdn.net/svitter Computational Geometry 计算几何 ACM中基本是最麻烦的部分. 几何代码都要自己写,STL中也没有.基本上. struct point 数乘,差乘,计算几何题目抄.一个数字由于误差积累造成大. 避免误差. 注意: a=b <=> |a-b| < e a<b <=> a-b < -e a<=b <=> a-b < e e 多10^-8 四舍六入五差 +-

北大ACM暑期培训课程目录(五)

本文出自:http://blog.csdn.net/svitter netFlow Ford-Fulkerson 深度优先搜索,制作一个流网络. 部分路径可能不合理. 对上次dfs的边就行重新筛选.每条边来个反向边. 再来一次dfs 发现还能找到一条路径. dfs->abtray edge->dfs stop when no new stream 容量相等. *残余网络 寻找变数最少的增广路径 通过bfs寻找增广路劲 Edmonds-Karp最短增广路算法 依然不是很好的算法. POJ1273

北大ACM暑期培训课程目录(二)

本文出自:http://blog.csdn.net/svitter 原来的一篇可能是因为字数太长,一编辑就出问题,无奈,只好暂时写一篇新的. 今天学习的内容是搜索. 一.wide search 1.poj3307 cow 深度搜索还要用栈. 广度搜速度更快. 按照层次的顺序访问节点. 走n步可以到达的点,n-1不可以到达.绝对是最优解. 可以联系图来想--周围区域扩展. re记住已经走过的点(如果转换成树呢?) 利用队列来存点. 广搜的空间大,深搜可以用一个栈来维护.(相对于广搜空间少的多) o

北大ACM暑期培训(1)——线段树,树状数组

本文出自:http://blog.csdn.net/svitter 今天ACM暑期实训开始了,今天讲述的内容是: 7.14  数据结构(一): 线段树,树状数组,二维线段树. 线段树:invertal tree (称为区间树更加合适) 作用:快速区间查询,用于解决区间统计的有关问题. 重点:同层节点不重叠. 每层最多有两个终止节点. 更新和进行区间分解的时间复杂度均为log(n); 方法:调用会多次使用递归更新插入查询: 空间:开空间的时候,一般情况下开4n大小,2*2log[n] - 1 <=

北大ACM题库习题分类与简介(转载)

在百度文库上找到的,不知是哪位大牛整理的,真的很不错! zz题 目分类 Posted by fishhead at 2007-01-13 12:44:58.0 -------------------------------------------------------------------------------- acm.pku.edu.cn 1. 排序 1423, 1694, 1723, 1727, 1763, 1788, 1828, 1838, 1840, 2201, 2376, 23

题解报告(CDUT暑期集训——第三场)

题解报告(CDUT暑期集训--第三场) A - Problem A. Ascending Rating HDU - 6319 思路:单调队列板子题?(但是弱的一批的我还是不会用(有空补上 用的滑动窗口算法 按着题解的从后往前做(ps:菜是原罪 AC代码 #include<stdio.h> #include<iostream> #include<math.h> #include<algorithm> #include<string.h> #incl

docker-修改容器的挂载目录三种方式

原文:docker-修改容器的挂载目录三种方式 方式一:修改配置文件(需停止docker服务) 1.停止docker服务 systemctl stop docker.service(关键,修改之前必须停止docker服务) 2.vim /var/lib/docker/containers/container-ID/config.v2.json 修改配置文件中的目录位置,然后保存退出 "MountPoints":{"/home":{"Source"

ACM比赛(第三次D)

Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%lld & %llu Description 有三户人家共拥有一座花园,每户人家的太太均需帮忙整理花园.A 太太工作了5 天,B 太太则工作了4 天,才将花园整理完毕.C 太太因为正身怀六甲无法加入她们的行列,便出了90元.请问这笔钱如何分给A.B 二位太太较为恰当?A 应得多少元?90/(5+4)*5=$50 元?如果这么想你就上当了!正确答案是60 元.如果没想通

北大ACM试题分类

OJ上的一些水题(可用来练手和增加自信) (poj1003,poj1004,poj1005,poj1207,poj3299,poj2159,poj2739,poj1083,poj2262,poj3006,poj2255,poj3094) 初级: 一.基本算法: (1)枚举. (poj1018,poj1753,poj2965)(2)贪心(poj1328,poj2109,poj2586)(3)递归和分治法. (4)递推. (5)构造法.(poj3295,poj3239)(6.1)模拟法.(poj10