图论
文章平均质量分 76
ahero_happy
这个作者很懒,什么都没留下…
展开
-
次小生成树的思想 pku1679最小生成树是否唯一
次小生成树是权值第二小的生成树,可能与最小生成树权值相等。对于最小生成树上任意两点,如果只能经过最小生成树上的边,路径都是唯一的。而次小生成树可以由一条非最小生成树上的边换取一条最小生成树的边而得到。所以在生成最小生成树的同时,记录最小生成树上任意两点路径中最长的路径即可。#in原创 2011-07-24 11:17:33 · 1175 阅读 · 1 评论 -
有向图的最小生成树(最小树形图)hdu4009 2011大连赛区网络赛1009
/*http://hi.baidu.com/bin183/blog/item/45c37950ece4475f1138c273.html最小树形图(有向图的最小生成树)思想:对于有根的图,首先求出每个点费用最小的前驱边,如果这些前驱边构成了回路, 那么缩点原创 2011-09-04 22:09:51 · 4128 阅读 · 0 评论 -
pku3635有一定大小的油箱从S到T所需最少的money
题意:现有N个点(n 注意:使用优先队列(排序也是一样,反正用到堆的)时,注意你比较的值插入队列后就不要改变,因为如果改变了,但它在队列中的位置仍不变,那么就会不对应,导致出错。 分析:对于每个查询,有状态mo[i][j]在i城市还剩油j所用的原创 2011-08-06 15:45:39 · 554 阅读 · 0 评论 -
有关胡伯涛《最小割应用》论文的理解
最小割我的理解就是去掉权值和最小的一些边使得一个点不能到达另一个点。这篇论文中讲了好几个应用,现分别总结下:最大权闭合图:将源点连正权的点,负权的点连汇点,中间的关系照常,求最大流即可。http://acm.hdu.edu.cn/showproblem.php?pid=391原创 2011-08-07 11:48:47 · 4418 阅读 · 0 评论 -
sgu326告诉已赢的场数,还剩的场数,某人是否可能得冠军
题意:现一个队有N个人,每个人已经赢了ai场,还有bi场比赛没打(可能不是跟本队的打,且比赛没有平局)。现给出N*N的矩阵g,g[i][j]表示i和j还有几场比赛要打(g[i][i]=0且g[i][j]=g[j][i])。问第一个人是否可能是整个队赢的最多的。 分原创 2011-08-07 18:53:26 · 617 阅读 · 0 评论 -
pku1639最小度限制生成树
题意:求图的最小生成树,不过其中一个点在最小生成树中的度要小于等于k。 分析:原创 2011-08-11 11:55:50 · 810 阅读 · 0 评论 -
pku1904求所有的完备边
题意:有N男N女,告诉其中一个完备匹配,求其它所有的完备匹配 分析:对于一个男生,如果还有别的可能,那么肯定可以找到一个环。但这图怎么构造就悲剧了,一直建了个错图,所以一直WA。后面还是看了别人的解题报告才。。。下面分别给出WA和AC的思想与代码//WA原创 2011-08-13 12:02:22 · 474 阅读 · 0 评论 -
最大权匹配KM算法的理解
如果m和n不相同时,最好把小的放上面,因为每次都是找上面一点的匹配点,找到满意的才会退出。若求最大权匹配,则匹配的点可以不存在(此时权值为0)。但如果求最小权匹配的话,直接把匹配的关系的权值取反的话,不存在的关系权值为0反而是最大的,所以就会出错。这时有两个解决方法,第一个就是保原创 2011-02-23 17:44:00 · 2707 阅读 · 0 评论 -
牛顿迭代法代替二分 pku2728高度和除以距离和最小的生成树
题意:在二维平面内有一些点,每个点都有一个高度(变成三维了),现要找一个生成树,使得高度和除以距离和最小。(n 分析:二分比值,然后求最小生成树,判断结果是否大于0。。。用二分会超时,用牛顿迭代法,实质是不断逼近迭代。#include#include原创 2011-08-15 09:20:31 · 893 阅读 · 0 评论 -
Stoer-Wagner算法(O(n^3))求全局最小割 hdu3691 2010福州站B题
这题比赛时没有做出来,一直以来都没有想到是全局最小割,现在看了别人的解题报告。。。 题意:给一图,入口,求将哪个点设为出口,使得最大流最小 分析:一直没有看出来是最小割集,想到那了还是蛮好理解的。http://wenku.baidu.com/v原创 2011-08-15 16:25:51 · 3169 阅读 · 0 评论 -
pku3613Cow Relays 正好有m条边的最短路径
题意:求一点至另一点正好有m条边的最短路径 分析:因为最多只有100条边,m最大可达10^6,所以一定是绕很多环的,又因为是无向图,所以肯定是不断地来回走一条边,所以要标记一下S到T路径中,最短的边是多少。从原点出发,算出小于101的边数到达T的最短路时,我将S到原创 2011-08-05 11:07:45 · 612 阅读 · 0 评论 -
大连赛区网赛1005 对方加一条边,我方减一条边最少的费用
/*题意:N个点,M条无向有权边,求一个数,使得加任何一条边后,可以破坏一条小于或等于这个数的边,使得不连通分析:先缩点形成树。而后,加上的边一定会包含最小的边权。所以分别以这条边的两端点建树。记录以某个点为根结点 的最小边权值,然后再搜一遍,确定方向。原创 2011-09-03 17:15:59 · 3323 阅读 · 0 评论 -
2011多校八1008最大权闭合子图
比较好想的最大权闭合子图,不会的参照论文。。。#include#include#include#includeusing namespace std;const int maxn=5100;const int maxm=550000;const原创 2011-08-05 22:47:05 · 590 阅读 · 0 评论 -
差分约束小结 pku3169 1275 1716 3159 1364
差分约束:给定满足一些类似d[i]-d[j] 分析:因为满足那种类型的等式,与最短路的等式是一样的,所以可以用最短路的思想解。关系全部转化为一种,要与最短路算法里面判断关系的符合互补(如关系全部化为)。因为存在负权回路,所以要知道至少一种含负权的最短路算法,Bell原创 2011-07-11 11:47:27 · 530 阅读 · 0 评论 -
pku2110求一点至另一点的路径中高度差最小的值
现在有一个N*N的矩阵,每个位置是一个整数,代表这点的高度,站在某个位置上的人,只能向上下左右四个方向移动,求从(1,1)至(N,N)间的所有路径中高度差最小的值。N 开始想直接借用最短路的思想做,但发现是错误的。还是用一般的想法吧,二分高度差+枚举最小高度。。。确定原创 2011-07-24 11:09:48 · 883 阅读 · 0 评论 -
hdu3870 S-T平面图最小割转化为最短路
题意:N*N的方格,每条边有权值,求从(1,1)到(n,n)的最小割。n 这题是在S-T平面图中将最小割转化为最短路的题,推荐08年OI论文周冬《两极相通——浅析最大—最小定理在信息学竞赛中的应用》,没看论文的压力很大,果断不会。研究了一会,下面说下自己的理解。何为原创 2011-07-27 11:49:25 · 2707 阅读 · 0 评论 -
uestc1558最短路或线段树优化的DP 四川比赛B题
大于或等于某个价值的东西可以经过一段时间换取价值比它的大的东西,问最少经过多少时间可以换到价值大于M的东西? 因为关系最多有10^5,东西最多就会有2*10^5个,最关键的是价钱大小,所以将所有的东西按照价值从小到大排序,便宜的i(对应的下标)经过一段时间可以原创 2011-07-23 19:22:27 · 1029 阅读 · 2 评论 -
hdu3899树中选择开会地点(树,树形DP) 多校六1010
/*题意:给一树,每个结点有人数,边有权值,表示经过这条边所需时间,问取某个结点作为开会地点,所有人全部到达此结点最少所需总时间?分析:先深搜一次,把以每个结点为根结点的子树的结点数目以及子树中所有结点到此结点的时间和求出来。然后再利用上面所求的信息,再深搜一原创 2011-07-29 17:38:12 · 862 阅读 · 0 评论 -
pku2289 最大流 通讯录分组
题意:通讯录中有N个人,想分M个组,每个人有可以分到的组,问怎么分使得每组最多人数最少。 分析:最大流,二分每组最多的人数。新加源点S,连每个人,流量为1;若人能放M组,则连N人至M组,流量为1;每组连汇点T,流量为二分的最多人数。注意每个组最多N人,所以r初值原创 2011-07-30 13:17:48 · 586 阅读 · 0 评论 -
swjtu1583 用DP或最小费用最大流求一点至另一点两条路径的最大价值,同一格点算一次
//点有10^4方,不知道为什么0ms过。。。我原还担心会TLE,数据弱了,还是算法非常高效,时间复杂度什么的是浮云。//给一n*n矩阵,找两条从(1,1)至(n,n)的路径,使得路径中的数的和最大,相同的位置最多只能算一次。//不知DP能不能做。最小费用最大流构图如下:将每原创 2011-07-28 17:49:48 · 953 阅读 · 0 评论 -
pku2449第K短路 最短路+A*
题意:求一点至另一点的第K短路。注意如果起点和终点一样的话,那么刚开始起点不算到达终点。 分析:寻找最短路,直接SPFA就可以了。。。这里是第K短路,把每一条路径都找出来。开始想用DP,dp[i][j]表示到i结点第j大的路径权值是多少,但这样还是搜,而且会超时原创 2011-08-03 12:44:22 · 2837 阅读 · 0 评论 -
pku3463求最短路和路径长度比其小一的总方法数
求次短路什么的最好用Dijkstra,因为每次取最小的,有序使得最后结果。 这题相当纠结。首先的想法是先把起点到其它点的最短距离与最短路径数目算出来,自然就知道S到T最短路的条数。然后枚举每条边(u,v,w),如果S到u的最短路距离+w+v到T的最短距离等于S到原创 2011-08-04 22:20:30 · 992 阅读 · 0 评论 -
Codeforces Beta Round #89 (Div. 2)E题,给一联通的无向图,求确定每边的方向,使得任意两点可达
/*题意:给一无向图,现在要确定每边的方向,使得任意两点可达,一定存在。思想:用Tarjan算法求双连通分量,将深入的边与使low值变小的边存起来。其它还没确定的随便选个方向即可*/#include#include#includeusing namespace std;const int maxn=110000;const int maxm=2100000;原创 2011-10-27 08:45:34 · 843 阅读 · 0 评论