上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 30 下一页
摘要: 题意:有N个城市,M个公司。现在需要建立交通是获得的利益最大。如果2个公司A,B, A修的路为Xa->Ya,B的路为Xb->Yb,如果Ya==Xb,那么这2个公司有关系。 对于每个公司都有获得的税,和需要付出的价值。求最大能够得到的利润为多少。 分析: 很明显是最小权闭合图。最大获利=总共的值-(付 阅读全文
posted @ 2015-10-29 16:00 sweat123 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 基础题。 最小割后,与汇点相连的点都不要,然后从源点出发dfs一遍有多少相连的点即可。 阅读全文
posted @ 2015-10-29 14:33 sweat123 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 若a,b 2点能够相连,那么可以得到ci的价值,也就是说a,b是得到c的前提条件,对于每一个点,又有耗费。 对于本题,先求出最多能够得到的利益有多少,最小割=未被 选的用户的收益之和 + 被选择的站点的成本之和,要尽量的小。 分析: 把每个用户和每个站点都看成一个顶点。建立网络,从源点S向每个用户连 阅读全文
posted @ 2015-10-28 21:58 sweat123 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/wuyiqi/archive/2012/03/12/2391960.html 性质: 最大权闭合图的权值=原图中权值为正的点的和-最小割; 闭合图:在一个图中,我们选取一些点构成集合,记为V,且集合中的出边(即集合中的点的向外连出的弧),所指向的终 阅读全文
posted @ 2015-10-26 22:51 sweat123 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 开始敲了一发线段树,觉得可以暴力一点的过,tle了。后来进行修改,发现了问题。 后来一看大神的做法,由于1<=k<=10,所以对于不同的k,有55个余,找答案的时候只要找不同的k值满足条件的值。 成段更新时,更新全部的树即可。 阅读全文
posted @ 2015-10-24 22:39 sweat123 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 一遍的话秩序要dp就好,但是这里要删去点。此题可以转化为最小费用流。开始我想了半天纠结怎么处理到过一次后值变0,看了书之后发现拆点解决了这个问题。 对于点t,拆为t-->t',容量为1,费用为负的矩阵的值,那就解决了只能一次。如果2个点连通,s-->t,就相连,s-->t,s-->t',t'->s' 阅读全文
posted @ 2015-10-23 19:25 sweat123 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 这题也可以用km做,我写的代码km比费用流快很多。 最小费用流: km: 阅读全文
posted @ 2015-10-22 12:57 sweat123 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 对于最小费用流,基本的思想和最大流类似,不断寻找增广路增广,只是此时还要考虑费用问题。 寻找最大流的方法是从某个可行流出发,找到关于这个流的一条增广路P; 沿着P调整f,对新的可行流又试图寻找关于它的增广路,循环直至不存在增广路为止; 如果f是流量为f1的可行流中费用最小者,而p是关于f的所有增广路 阅读全文
posted @ 2015-10-20 23:24 sweat123 阅读(460) 评论(0) 推荐(0) 编辑
摘要: A*算法超内存。 对于最短路,我们可以维护dis[]数组,来求得最短路,但是此题有次短路,所以定义dis[][2],dis[][0]表示最短路,dis[][1]表示次短路;cnt[][2],cnt[][0]表示最短路条数,cnt[][1]表示次短路条数。 更新时: 如果小于最短路,更新dis[][0 阅读全文
posted @ 2015-10-19 22:10 sweat123 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 启发函数:f(x)=g(x)+h(x); g(x)表示初始点到x状态的代价,h(x)表示从x的状态到目标状态的代价的估计值(并不是真实的),实际最小代价<=h(x); 起点s,终点t,x.v=s,x.len=0;然后优先队列中f(x)值最小值出队列,再根据出队列的x.v状态发展下一层。如果出队列时第 阅读全文
posted @ 2015-10-18 22:46 sweat123 阅读(615) 评论(0) 推荐(0) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 30 下一页