图论
文章平均质量分 82
ACM_Napoleon
这个作者很懒,什么都没留下…
展开
-
1507 Uncle Tom's Inherited Land* 二分图-----黑白染色+奇偶匹配(1X2的矩形覆盖)
要把 图分成两部分,即 0 1 交替出现 每个0 上下左右 都是1,1的上下左右都是0 。 待覆盖的点(非池塘)中 为0的点 为一个点集,为1的为另一个点集。每个点与周围的4个点(非池塘)有线连接。 这时,二分图建完了。 之后就是求最大二分匹配,输出路径(只用maty[] 就可以了,我却想的很麻烦 ,弱智啊) 主要是如何建图! #include #include #include #i原创 2013-08-19 10:25:27 · 945 阅读 · 0 评论 -
USTC 1280 / 携程决赛1004 最短路径的代价
最短路径的代价 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 32 Accepted Submission(s) : 15 Font: Times New Roman | Verdana | Georgia Fo原创 2014-04-16 21:00:06 · 1119 阅读 · 0 评论 -
HDU 1688 Sightseeing 最短路 及次短路 路径长度和路径数
本文来自: 题目链接:原创 2014-04-27 13:32:10 · 1297 阅读 · 0 评论 -
[费用流] acdream 1171 Matrix sum
LINK: http://acdream.info/problem?pid=1171 太弱没有想到用费用流做,每行每列至少选x个,相对立的是 每行每列至少选0个,至多N-x个的情况下选取的总和最大。 这就成了最大费用最大流。(要费用最大,流量一定最大了) 源点S和1....n (对应n行)建边流量为M-x,费用为0,n+1,n+2,....n+m(对应m列)和T建边原创 2014-08-04 09:34:53 · 757 阅读 · 0 评论 -
POJ 1637 Sightseeing tour(混合欧拉回路,网络流)
题意: 给你一个图,一些边(有单向边和双向边)问是否有混合欧拉回路(每个边只走一次,起点终点相同). 开始我们可以用点的入度出度检测一下,把双向边任意指定方向,如果某点的出度入度之差为奇数,肯定不会构成欧拉回路的。 如果都为偶数,我们就要检测这些双向边能否使得没电入度==出度了。 建图: 单向边不用考虑,双向边按照开始任意指定的方向建边,容量为1. 一个点如果出度>入度,连边原创 2014-08-18 19:53:22 · 851 阅读 · 0 评论 -
POJ 2728 最优比率生成树
题目LINK: http://poj.org/problem?id=2728 原理参考 : http://www.cnblogs.com/lotus3x/archive/2009/03/21/1418480.html http://hi.baidu.com/zzningxp/item/28aa46e0fd86bdc2bbf37d03 做法就是,二分这个比率r, 把生成树的边的原创 2014-08-07 16:04:25 · 777 阅读 · 0 评论 -
HOJ 2634 How to earn more [网络流]最大权闭合图
题目: LINK 题意:有m个项目要做,有n个工人,每个项目要且必须要这些工人中的一个子集来完成, 一个工人可以参与多个项目,给出每个项目完成后的收益gi和雇佣每个工人的花费ci,以及每个项目必须需要的工人的编号,问能获得的最大收益是多少。 闭合图的概念:在一个图中,我们选取一些点构成集合,记为V,且集合中的出边(即集合中的点的向外连出的弧),所指向的终点(弧头)也在V中,则我们称V为闭合图。原创 2014-09-05 22:49:54 · 771 阅读 · 0 评论 -
HOJ 2713 Matrix1 [网络流] 最大点权独立集问题
题目: LINK 题目大意: 一个 N*M 的网格,每个单元都有一块价值 Cij 的宝石。问最多能取多少价值的宝石且任意两块宝石不相邻。(1 最大点权独立集问题 先将网格黑白染色,从源点S到每个黑点有一条边,从每个白点到汇点T有一条边,容量均为相应宝石的价值。 每个黑点向与其相邻的四个白点连边,容量为∞。设最小割为 ans,结果即为∑Cij – ans。 因为每一原创 2014-09-06 15:34:11 · 1351 阅读 · 0 评论 -
ZOJ 1760 How Many Shortest Path (网络流.水)
题意是, 给你一个有向带权图,给你源点汇点S, T, 你会得到S->T 的最短路,求有多少条不同的最短路(不同:没有公共边) 做法很简单,先求一遍最短路(spfa/fload) 之后建立新图, 如果dis[i] + edge[i][j] == dis[j] 就添加边edge[i][j]。流量为1 之后S->T求一次最大流, 流量就是结果。 不知道第一次哪儿敲错了tle, 第二次才过。T_T原创 2014-08-11 21:32:33 · 702 阅读 · 0 评论 -
SGU 326. Perspective (最大流)
LINK: http://acm.sgu.ru/problem.php?contest=0&problem=326 题意:两个赛区,每个赛区N个球队(标号1-N),现在已知一个赛区中每只球队赢得的场数和与每只球队还有多少场比赛(包括分区内和分区外),现在问你是否有可能让第一支球队成为分区第一。 对于1-th, 无论是分区内还是分区外全让他赢,对于其他球队让分区外全输,分区内和1的比原创 2014-08-12 20:00:36 · 758 阅读 · 0 评论 -
ZOJ 1232 Adventure of Super Mario(最短路, DP)
LINK: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1232 题意是, 一共a+b个点前a个点表示a个村庄,b表示b个城堡,要求你从(a+b)-th走到1-th的距离最短,你可以使用k次鞋子,一次鞋子走的距离不能超过l, 而且不能中途经过城堡。 从1到(a+b)和从(a+b) 到1是一样的过程,可以先用f原创 2014-08-12 14:30:34 · 841 阅读 · 0 评论 -
SGU 438. The Glorious Karlutka River =) (网络流,动态流问题)
题目: LINK 经典的动态流问题,在流量限制的基础上加入了时间限制。 首先将X轴作为源点,Y=w作为汇点,将每块石头拆成两个点(i’, i’’)并连边(i’, i’’, Ci)。接下来我们再按时间将每块石头拆点,形成一个分层网络(time-expanded network),每块石头在不同的时间点都有一个点表示。所有能从起点跳到的石头,从源点向其各时间点处连边,容量为∞。所有能跳到汇点的原创 2014-08-14 16:42:46 · 874 阅读 · 0 评论 -
POJ Intervals (最小费用最大流)
题目: LINK 给定 N 个带权的开区间,第 i 个区间覆盖(ai, bi),权为 wi。现在要你挑出一些区间使得总权值最大,并且满足实轴上任意一个点被覆盖不超过 K 次。(1 首先要将每个区间的端点离散化,1..M,另加源 s=0,汇 t=M+1;对每个点 i (0 对每个区间(ai, bi)加边(ai’, bi’, 1, -wi),其中ai’, bi’分别表示 ai, bi原创 2014-09-02 21:08:24 · 857 阅读 · 0 评论 -
Codeforces Round #270 D. Design Tutorial: Inverse the Problem
题目: LINK原创 2014-10-03 22:20:09 · 753 阅读 · 0 评论 -
CodingTrip - 携程编程大赛 (预赛第一场)
携程全球数据中心建设 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 725 Accepted Submission(s): 307 Problem Description 携程为了扩展全球在线旅游业务,决原创 2014-04-15 21:12:02 · 1064 阅读 · 0 评论 -
Codeforces Round #236 (Div. 2) (全)
题意:给一个矩阵A,保证Aij大于等于0,并且Aii不全为0。问是否存在k使得A^k中的每个元素大于0 其实,可以看做 离散数学中的可到达矩阵 的 概念, 和图论联系起来,如果存在K使得 A^K中的每个元素>=0,就是 矩阵A代表的 图, 是一个 强连通图。 就是 判断 这个图 是否是强连通 即可。 Tarjan算法。可参考 https://www.byvoid.com/blog/scc-原创 2014-03-17 20:58:39 · 1171 阅读 · 1 评论 -
Codeforces Round #228 (Div. 2) D - Fox and Minimal path
前三题 没有什么可以说的 水题, 但是 B题 大意了,最后WA了,所以 rating 大降 T_T. 何时才能进DIV1 啊。 D题, 当时 交了一发,不过被HACK了,因为考虑不全面。 当时的想法是把 K 分解为1000 内的因数相乘 而且 这些因数的和 之后,考虑分解为二进制,之后是相乘之积 相加。上面的错误之处也就是在于全是相乘。 用这个思路分解,比如用二进制分解 K=5, 可原创 2014-02-09 01:59:07 · 1274 阅读 · 0 评论 -
HDU 2819 Swap (二分图-行列匹配+输出解)
http://acm.hdu.edu.cn/showproblem.php?pid=2819 题意是从左上角到右下角的对角线上的点都要通过整行或整列的移动 为 1 。 只要每行每列都不全为0 , 就可以组成题目要求。 太挫了, 以为题目是求 最小的移动的次数和方案。其实是任意可行的,通过行完成的,必然可以通过列完成。 #include #include #include #include u原创 2013-08-20 09:26:32 · 776 阅读 · 0 评论 -
HDU 1181 变形记 (DFS / Floyd)
//DFS做法 #include #include #include #include #define PI acos(-1.0) #define max(a,b) (a)>(b)? (a):(b) #define min(a,b) (a)>(b)? (b):(a) #define INT_MIN -0x7FFFFFFF #define INT_MAX 0x7FFFFFFF char str[10原创 2013-08-02 16:16:58 · 878 阅读 · 0 评论 -
POJ 1142 A Walk Through the Forest ( 最短路 +记忆化搜索)
此题,弄了几个小时,昨晚之后都说 那个题很水, 不过这个题 无关水与不水。 题意读错,开始 结合样例 ,认为是求有几条不同路径的最短路。 但是,不是 ” He considers taking a path from A to B to be progress if there exists a route from B to his home that is shorter than a原创 2013-08-06 19:48:07 · 914 阅读 · 1 评论 -
POJ 2349 Arctic Network (MST中的第K长路)
题目: http://poj.org/problem?id=2349 1)关于题意,开始code完了,才发现,样例都解释不过去,题意理解错误,最后才明白是求MST种的长度排序后的第K长的权值,这个题意的叙述 相当无语 2) 我很挫, 连qsort的double 类型的比较都可以不会,其中返回值时 类型的强制转化 都 忘了 在对浮点或者double型的一定要用三目运算符,因为如果也使用整型那原创 2013-08-11 20:49:36 · 860 阅读 · 0 评论 -
POJ 1062昂贵的聘礼 (建图+dijkstra)
题目地址: http://poj.org/problem?id=1062 开始用DFS写 , 莫名其妙的MLE,明明没有超,就这样纠结, 而且咩有纠结出来。。。一定要弄出来 之后用最短路写, 主要是处理 等级的限制。 用到枚举 ,枚举以酋长的地位为其中的值,以m为范围,求出每次可以可能 到达的等级 记录为within[],松弛要做出些微的改变 之后分别dijkstra, 求出最小的 开始还原创 2013-08-08 17:54:07 · 875 阅读 · 0 评论 -
HDU 1811 Rank of Tetris (并查集 + 拓扑排序)
http://acm.hdu.edu.cn/showproblem.php?pid=1811 中文题目,但是题意和 样例看了半天,脑残啊! 不过题目不错 对于 '=' 连接的 一些点, 他们的序列 必须是连续的 ,因而 使用并查集 把 这些相等的点优化为一个点。 使用 拓扑排序的时候 ,如果 每一次入队 的次数超过一个,则 次序不确定 UNCERTAIN 如果 每次 入度为0 的点原创 2013-08-16 16:47:51 · 832 阅读 · 0 评论 -
POJ 1270 Following Orders (拓扑 + DFS回溯)
DFS搞了半天 , 仔细 思考 回溯 (每一次 都是 本层全新的状态) 加上记录方案 代码确实很挫 #include #include #include #include using namespace std; #define max(a,b) (a)>(b)? (a):(b) #define min(a,b) (a)>(b)? (b):(a) #define INF 100000000原创 2013-08-17 11:02:33 · 937 阅读 · 0 评论 -
HDU 3231 Box Relations (三维 拓扑)
http://acm.hdu.edu.cn/showproblem.php?pid=3231 其实3维并不难处理,只是 , 如何 处理每一维 XYZ 上的 关系, 开始能想到用拓扑 就不好想, 如果没有 'I' 这个关系,可以把每个box在每一维上看做一个点,构造大小关系,但是有这个‘I',可以 把每个box的信息 分到每一维 上的两点,大小关系 arelation x,y,z 都是对应原创 2013-08-17 16:05:34 · 895 阅读 · 0 评论 -
Count The Pairs (2013 ACM/ICPC Asia Regional Nanjing Online)
http://acm.hdu.edu.cn/showproblem.php?pid=4750 一个无向图,两点之间 的 value 是 两点之间的 path中的最大 road , 这些 最大 road的最小值 即 min( 所有path 的 max( 每个path中的 road))。 求 对于要求的 每个 t 有多少对点 满足 value (e,s)>=t 利用 并查集,kruska原创 2013-10-03 12:36:59 · 990 阅读 · 0 评论 -
Tarjan+LCA POJ 3694 Network
链接: http://poj.org/problem?id=3694 给定一无向图,保证是连通的, 之后 逐渐加边,求每次加边后的,图的桥的数目。 由于 数据比较大,要用到LCA + 缩点。 值得学习的 也是 这两点, 求树种两点的 最短路径数,也是这么求。 先Tarjan一下, 求得割边,同时 缩点, 成为一棵树, 树上的边都是 桥,之后添边,两点 有同一个 parent 则 不减少桥的数原创 2013-10-30 00:54:15 · 924 阅读 · 0 评论 -
POJ 1112 Team Them Up!
http://poj.org/problem?id=1112 题意:一共N个人,给出每个人和其余人是否认识,把所有人分成两组。 要求1)每一个人 属于其中一组。 2)每组必须有人 3)每组内的所有人 必须相互认识(有向边 相互认识 才是认识) 4)两组的人数之差尽可能小 先读入数据,把两两不认识的人 连边, 建图,则同一边连接的两点不能在同一组。建完图后,进行DFS 染色,可以原创 2013-11-08 17:14:09 · 938 阅读 · 0 评论 -
HDU 4081 Qin Shi Huang's National Road System
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4081 题意 :给定 二维坐标系上的N个点, 要建n-1条路, 每个点有一个坐标,代表这个城市的位置,每个点有一个人口值。现在可以在n-1条边中选一条 magic road. 修建这条magic road不需代价。 现在求 求修建n-1条路 在这n个点中,使A/B最大 (A 代表magic roa原创 2013-11-09 20:39:53 · 730 阅读 · 0 评论 -
Codeforces 260D - Black and White Tree
http://codeforces.com/problemset/problem/260/D 题意: 有n个点的一个树,同一条边的两个点涂成不同的颜色(black & white),每条边有一个权值,题目给出n , 和每个点的颜色 和 与每个点相连的边的权值和。 求出n-1条边 的端点和权值。 n的 大小 10e5. 这有是一个构造的 题目。 由于题目说明 肯定可以构造出来, 所以,白原创 2014-02-23 21:23:21 · 1657 阅读 · 0 评论 -
HDU 1568 Legal path (DP)
题目: LINK 题意:给定一个有向图,求1->n的“最短路”。这儿的“最短路”有限定条件----就是最短路上的每一条边的权值比上一条边(如果有的话)至少大k。 点数n 1e5, 边数m 2e5比较大。可以考虑DP的解法。 可以先把所有的边按照权值大小排序,最容易想到的是O(m^2)的解法。这样中间会遍历许多没有用的边,所以我们要优化一下。 我们可以发现,通过直接的边i, j到达x点, 如原创 2015-02-04 19:18:30 · 1046 阅读 · 0 评论