上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 32 下一页
摘要: http://poj.org/problem?id=1523题意: 求 无向图的 个点,以及 将个点 去掉后 图 被分成 几个联通块;题解: tarjan 。 1#include<cstdio>2#include<cstring>3#include<cmath>4#include<iostream>5#include<algorithm>6#include<set>7#include<map>8#include<queue>9#include<vector>10#include<s 阅读全文
posted @ 2012-10-18 11:21 Szz 阅读(221) 评论(0) 推荐(0)
摘要: Gale-Shapley算法来源:刘进的日志Gale-Shapley算法近来学习了很有趣的Gale-Shapley算法,又名求婚-拒绝算法。n个男人和n个女人相互配对。每个男人m对所有的女人排名,如果m给w的排名高于w’,就说m偏爱w超过w’。把m的按顺序的排名作为他的优先表。类似的,每个女人也对所有的男人排名。要求求他们的一个稳定匹配。所谓稳定匹配是这样的:给定一个完美匹配S,如果在S中存在两个对(m,w),(m’,w’),其中m更爱w’,且w’更爱m,那么配对(m,w’)就是一个不稳定的因素,他们原来的婚姻都将不稳定。我们的目标就是建立一个不含有上述不稳定因素的配对集合。算法如下:初始所有 阅读全文
posted @ 2012-10-17 20:40 Szz 阅读(2955) 评论(2) 推荐(0)
摘要: http://poj.org/problem?id=3487题目:有N位女士和N位男士,每位男士或者女士都对对方有个评价。他们会形成N对夫妻,如果A和a结婚,B和b结婚,但是A更偏爱b而非a而且b也更偏爱A而非B,那么这种婚姻是不稳定的 ,求 一个稳定的 婚姻 配对。题目要求是男士优先,也就是男士优先表白,肯定会从最喜欢的开始表白,如果对方没有男友或者表白的男士优于当前男友,就会抛弃原来的男友,而接受表白的男士,男士也成功脱光。否则男士会被拒绝,便只能考虑下一个喜欢的女士。直到所有人都脱光,不存在拒绝情况为止。 队列实现,将自由男一个个拿出来,寻找女士一个个进行匹配。 感觉上先表白的男士会沾光 阅读全文
posted @ 2012-10-17 20:38 Szz 阅读(973) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3666题意:给你一个N*M的矩阵,求两列数a1,a2,a3...an 和 b1,b2.....bm使得对矩阵中的每个数进行下面的操作之后的值在[L,U]之间,操作为:a[i] * m[i][j] / b[j]。 N,M<=400题解: 差分约束。 首先 L<= c[i][j] *ai / bj <= u ,以前 我们遇到的都是 减法的 差分约束 ,那么我们 只i要 取 log 就可以 了,两边 他同除以 c[i][j] , 然后取 log 锝 ,log(l) - log(c[i][j]) & 阅读全文
posted @ 2012-10-17 17:18 Szz 阅读(322) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3667题意:用 0 到 n-1 运送k 个货物,m条边,每条边,u,v,a,c,; 每条边表示 运送 x 单元货物的花费为 a * x*x,c 表示最大流量 ,求 最小费用 ,若不能全部运送输出 -1;题解: 拆边 ,看到这个题直接的思路就是费用流,一开始提了个模版 上去 发现不对,我们以前做的 花费是 a*f ,而现在是 a*f*f(此时 以 最短路 已不能找到正确的答案);所以我们要变为 a*f ,那么就是,我们 发现 第一次运送时费用为a,第二次取这条路时费用为3a(即流量为2时费用值为a+3a=4a) 阅读全文
posted @ 2012-10-14 20:59 Szz 阅读(303) 评论(0) 推荐(0)
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=239337这个题普通的方法或打表就可以过,在这里主要是用最小路径覆盖思想解一下。这题需要转化一下,将问题从求m根柱子最多能放多少球,变为,n个球最少 需要多少柱子。如果对i<j,i + j 为完全平方数,则有一条从i到j的有向边,就变成了求图的最小路径覆盖。这时候只要在预处理中把最小路径覆盖小于50的全部算出来就可以了。 求最 小路径覆盖一般是转化为求图的二分匹配,但是要对图进行一些转化,构造一个新图。将节点i分裂为两个节点i, i',如果原图中有从i到j的节点 阅读全文
posted @ 2012-10-12 16:57 Szz 阅读(375) 评论(0) 推荐(0)
摘要: poj.org/problem?id=1325题意:有A和B两种机器,A机器有n种状态,B机器有m种状态。现在有k个需要加工的材料,每种材料可以用A机器的x状态或者是B机器的y状态加工完成,问药加工完所有的材料,需最少改变A和B的多少次状态。A和B的初始状态都为0。题解:最大匹配, 对于 任务 k 若 a 的状态是 i b 的状态是 j 则 i -> j这样 每一个任务 表示 一条狐,要完成 所有的任务 且 重启次数最小 ,即求 最小点覆盖。注意 :一开始的时候机器的状太 为 0 ,所以 遇到 状态为0 的 任务可以 过滤掉 1#include<cstdio>2#includ 阅读全文
posted @ 2012-10-09 20:49 Szz 阅读(199) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=2060题意:出租车公司有n个预约, 每个预约有时间和地点, 地点分布在二维整数坐标系上, 地点之间的行驶时间为两点间的曼哈顿距离(|x1 - x2| + |y1 - y2|)。一辆车可以在运完一个乘客后运另一个乘客, 条件是此车要在预约开始前一分钟之前到达出发地, 问最少需要几辆车搞定所有预约。题解:这道题很容易 看出来 求的就是一个 最小路径覆盖。对于乘客 i 和 j 若 t[i] + 他们的距离 《 s[j] 则 i-> j;建完图后求最小路径覆盖即可。1#include<cstdio>2#include<cst 阅读全文
posted @ 2012-10-09 20:35 Szz 阅读(199) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1422题意:一个地图上有n个小镇,以及连接着其中两个小镇的有向边,而且这些边无法形成回路。现在选择一些小镇空降士兵(1个小镇最多1个士兵),士兵能沿着边走到尽头,问最少空降几个士兵,能遍历完所有的小镇。题解:一看这道题,求的是最少的路径覆盖住所有点。二分图的最小路径覆盖,就是在图中 找一些路径,使其覆盖主所有的点,而且每个点只属于一条路径,如果把这些路径中的每条路径从它的起始点走到它的终点,那么恰好可以经过图中的每个顶点一次且仅一次);解决此类问题可以建立一个二分图模型。把所有顶点i拆成两个:X结点集中的i和Y结点集中的i',如果有 阅读全文
posted @ 2012-10-08 21:25 Szz 阅读(340) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=2226题意:农夫John的养牛场,是一个R 行C 列的矩形,一场大雨后,养牛场低洼的地方都有了积水。John 的牛都很娇贵的,他们吃草的时候,不想把他们的蹄子给弄脏了。为了不让牛儿们把它们的蹄子弄脏,John 决定把有水的地方铺上木板(木板可以重叠)。他的木板是宽度为1,长度没有限制的。Sample: 4 4 *.*. .*** ***. ..*.题解 :看到这个题感觉一个题很像,原来就是黑书上的 “皇家卫士” ,因为要用最少的木板,所以我们要 ,使木板最长,把行里面连在一起的坑连起来视为一个点,即一块横木板,编上序号,Sample则转.. 阅读全文
posted @ 2012-10-08 20:00 Szz 阅读(191) 评论(0) 推荐(0)
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 32 下一页