图论
文章平均质量分 73
MicZ
这个作者很懒,什么都没留下…
展开
-
HOJ 1811 Freckles (Prim 最小生成树)
题意:平面上有n个点,并给出n个点的坐标。现在要用线把这些点全部连起来。问如何连使得线的总长度最短。 分析:是一道裸的最小生成树问题。用Prim算法解决,贴到这儿当模板了。 #include #include #include #include #define N 105 #define INF 0xfffffff using namespace std; struc原创 2012-10-01 10:36:32 · 495 阅读 · 0 评论 -
Prim 与Dijkstra
Prim Dijkstra 目的 最小生成树 单源最短路 让所有边权值之和最小 让每个顶点到源点路径上的权值最小 贪心,不断更新每个顶点到整棵树的距离 贪心,不断更新每个顶点到源点的距离 复杂度 O(n^2),可堆优化到O(nlogn) O(n^2),可堆优化到O(nlogn) 当图无权时,求最短路,dijkstr原创 2012-10-01 18:36:22 · 2631 阅读 · 0 评论 -
HOJ 1113 Stockbroker Grapevine (Floyd最短路)
题意:谣言在n个人之间传播,谣言从一个人传给另一个人需要一定时间(是有向图)。问谣言从哪个人开始传,传遍所有人所用时间最短(这里的时间指的是,传到最后一个人时所用的时间)。输出这个人的编号,及所需要时间。 分析:Dijkstra是用来求单源最短路的,而这里起点不确定。采用Floyd算法先对图进行收缩,O(n^3)的复杂度。对每个点,找到这个点做源点时,谣言传遍所有人所需要的“时间”,遍历原创 2012-10-01 19:36:48 · 583 阅读 · 0 评论 -
Poj 3281 && Regional Chengdu Food(Dicnic)
网络流最大流的优化算法Dicnic,每一步对原图进行分层,然后用DFS求增广路。时间复杂度是O(n^2*m) 。 Poj 3281 和 9.16号成都regional网络赛food那道题,都是很好的模板题。。 以food那题为例,这样建图:设一个源点,每一种food为一层,每个人分成两部分,people1 people2两层,每种饮料是一层,然后是一个汇点。 每一种食物的个数,即原创 2012-09-17 22:36:59 · 523 阅读 · 0 评论 -
HOJ 1056 Machine Schedule (二分图匹配,匈牙利算法)
题意: 给k个任务,每一个任务都能被Computer A的x_mode或Computer B的y_mode处理。mode的转换需要重启。问如何安排任务的处理顺序,可以使得重启的次数最少。 分析: 二分图匹配。将每一个任务看成一条边,端点分别是Computer A的x_mode和Computer B的y_mode。求最小覆盖,即用最少的点数,使得每一条边至少都有一个点与它相连。根据最小覆盖=最原创 2012-10-19 08:49:25 · 478 阅读 · 0 评论 -
HOJ 1653 Heavy Transportation&& HOJ 1460 Heavy Cargo (Dijkstra 单源最短路)
题意:给出了城市数n,以及街道数m(街道是双向均可通行的), 对于每一条街mi,给出它的两端的城市,以及所能承载的最大货物运输量。 要求输出,从城市1到城市n,最多能运输多少货物。 分析:无向、带权图的单源最短路问题。 但这里路径的定义变成了:这条路上权值最小的那段路 的权值(而非所有段的权值之和)。 我们的任务就是求出:每一条从1到n的路上,“路径” 的最大值。 这样,就成了求单源原创 2012-10-01 11:14:04 · 1818 阅读 · 0 评论 -
poj 1511 Invitation Cards(spfa)
给一个有向图。求 1到所有点的最小距离之和与所有点到1最小距离之和相加的最小值。 用一个正向的原图做一次SPFA..再将所有边反过来做一次SPFA。 这题WA出翔了。最后发现dis数组和ans要用long long 来存。并且INF的选取也要小心,不能太大也不能太小。还有就是define INF的时候,后面要有ll,表示这是长整型。不然codeblocks里编译会有warning。但是提交不影原创 2012-12-16 17:57:13 · 392 阅读 · 0 评论