![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
文章平均质量分 55
xzxxzx401
这个作者很懒,什么都没留下…
展开
-
UVA 11419 SAM I AM
UVA 11419 SAM I AM二分图最小点覆盖,输出方案题目给出一个R×C的网格,网格上棉纺了一些目标。可以在网格外发射子弹,子弹会沿着垂直或水平方向飞行,并且打掉飞行路径上的所有目标。你的任务是计算出最少需要多少子弹,各从哪个位置发射,才能把所有目标全部打掉。思路 二分图最大匹配的König定理及其证明König定理:最小覆盖数等于最大匹配数。把目标所在的坐标,转化为XY结点,行看成X结点,原创 2017-10-17 13:56:49 · 229 阅读 · 0 评论 -
HDU 6166 Senior Pan
HDU 6166 Senior Pan二进制枚举题意给一个有向图,给一个点集,求点集内点的最近距离。思路假设最近点对是a,b。那么a,b肯定至少有一个二进制位不同。那么我们按位枚举,只需要枚举20位,肯定又一次枚举可以将a和b分开到两个集合。每次枚举跑一次spfa。取所有的最小值。链接到cf835E和多猪试毒问题。代码不难写#include<cstdio>#include<cstdlib>#in原创 2017-08-24 00:14:47 · 461 阅读 · 0 评论 -
HDU 6073 Matching In Multiplication
2017多校4-7 Matching In Multiplication图论,思维题意给你一个二分图,左右各n个点,左边每个点都连出两条边。保证至少有一个完美匹配,对于一个完美匹配,价值是边权之积,要求所有完美匹配的价值和。思路首先如果一个点的度数为1,那么它的匹配方案是固定的,继而我们可以去掉这一对点。通过拓扑我们可以不断去掉所有度数为1的点。那么剩下的图中左右各有m个点,每个点度数都不小于2,且原创 2017-08-04 16:39:30 · 296 阅读 · 0 评论 -
HDU 4971 A simple brute force problem
HDU 4971 A simple brute force problem网络流,最大权闭合子图 传送门:HustOJ题意给你一些问题,一些项目。解决每个问题有花费,完成每个项目有奖励。问题之间有关系,解决有的问题必须先解决其他某些问题,还有的问题之间是相互依赖的,即必须一起解决。问你最大收益是多少。思路%%%最大权闭合子图问题。具体有论文:网络流模型的应用。说一下建图方式:超级源,向每个项目原创 2017-07-21 18:50:12 · 235 阅读 · 0 评论 -
POJ 3687 Labeling Balls
POJ 3687 Labeling Balls拓扑排序 传送门:POJ 传送门:HustOJ题意这道题每次输入a,b的时候表示的是编号为a的球比编号为b的球轻,最后输出的是从编号 1 到编号 n每个小球的重量,如果存在多组解,输出使最小重量尽量排在前边的那组解,亦即 所有解中 1到 n号球的重量的字典序最小。思路逆向拓扑排序。%%%感觉讲的比较详细。给一组数据理解一下反向拓扑排序的必原创 2017-03-16 14:25:59 · 244 阅读 · 0 评论 -
POJ 3177 Redundant Paths && POJ 3352
POJ 3177 Redundant Paths && POJ 3352边-双连通分量,图论 传送门:POJ 3177 传送门:HustOJ题意这两题差不多,都是给你个联通无向图,问你至少添加多少条边才能让图中任意两点间都有两条路(指边不重复的路)。关于双连通分量,请参考离散数学图论。区别在于,3177,有重边。3352保证输入没有重边。而且3177后台测试数据答案好像认为重边只算一原创 2017-03-16 12:41:39 · 321 阅读 · 0 评论 -
POJ 2762 Going from u to v or from v to u?
POJ 2762 Going from u to v or from v to u?Targan,拓扑排序 传送门:POJ 传送门:HustOJ题意题意是给出一些点,和他们之间的有向边,如果图中任意两点 x,y 之间满足 x 可以到达 y 或者 y 可以到达 x ,就输出“Yes”,否则输出“No”。注意,这里是 x 到达 y ,或者 y 到达 x ,是 或者 不是 而且 。思路如果原创 2017-03-15 12:03:11 · 199 阅读 · 0 评论 -
POJ 1236 Network of Schools
POJ 1236 Network of Schools图论,有向图强连通分量,dfs 传送门:POJ题意一个计算机网络,计算机之间 单向 传递软件。问1,初始至少需要向多少个学校发放软件,使得网络内所有的学校最终都能得到软件。问2,至少需要添加几条传输线路(边),使任意向一个学校发放软件后,经过若干次传送,网络内所有的学校最终都能得到软件。思路强连通分量分解,把强连通分量缩点。第一问就是最原创 2016-09-01 11:21:48 · 222 阅读 · 0 评论 -
POJ 3592 Instantaneous Transference
POJ 3592 Instantaneous Transferencetargan,spfa 传送门:HustOJ 传送门:POJ题意一个N*M的矩阵,矩阵内每点可能是数字1~9:表示这点有数字个矿石,可能是*,表示这点是个超时空传送点,矩阵结束后按顺序给出传送点的传送目的地坐标,可能是#:表示该点不可达。任何矿石点可以到达其右侧点或下侧点,只要右或下点不是#;传送点也可以到其右或下原创 2017-03-14 23:59:08 · 217 阅读 · 0 评论 -
POJ 3249 Test for Job
POJ 3249 Test for Jobdfs DAG最长路 传送门:HustOJ 传送门:POJ题意DAG最长路。思路 这篇讲的挺好,有三种方法。我写的是dfs。代码神他妈的cin/cout过不了#include <cstdio>#include <cstdlib>//#include <iostream>#include <algorithm>#include <str原创 2017-03-14 20:03:56 · 244 阅读 · 0 评论 -
HDU 5458 Stability
HDU 5458 Stability树链剖分,巨麻烦题意给一个图,可能有重边与自环。有一些操作:删去某条边,保证边一定存在;查询两点之间的桥数。保证任意时刻图至少是一棵树。思路老谭看一眼觉得是缩点,可能还要剖分,就丢给我。我敲完水题就开始了。。爆炸。。。思路很清晰,两点之间的双联通分量一定对答案没有贡献,剩下的一条路贡献1。又最后保证联通,至少是树,所以思路很明显(有个NOI题,棘手的操作),先得到原创 2017-09-02 16:27:31 · 242 阅读 · 0 评论 -
2014 Benelux Algorithm Programming Contest (BAPC 14)
2014 Benelux Algorithm Programming Contest (BAPC 14)算5题?嘻嘻Gym - 101512B Button Bashing水题#include<bits/stdc++.h>using namespace std;const int maxn=7206;const int inf=0x3f3f3f3f; int t[maxn],d[2*maxn]原创 2017-10-21 12:13:06 · 939 阅读 · 0 评论 -
UVA 11383 Golden Tiger Claw
UVA 11383 Golden Tiger Claw带权二分图最大完美匹配,深入理解KM算法题意题意:给一个n*n的矩阵,每个格子中有正整数w[i][j],试为每行和每列分别确定一个数字row[i]和col[i],使得任意格子w[i][j]<=row[i]+col[j]恒成立。先输row,再输出col,再输出全部总和(总和应尽量小)。思路利用KM算法中的l(x)+l(y)>=w(x,y)。算法结束原创 2017-10-16 21:12:06 · 241 阅读 · 0 评论 -
Gym 100273A Ants
Gym 100273A Ants二分图最大完美匹配题意给出n个蚁群与n个苹果树坐标(任意三点不共线),使得每一个蚁群对应一个苹果树,且蚁群到苹果树的路线不相交。保证有解,求总距离最短的方案。思路二分图最大(小)匹配,将权值变为负的来处理最小匹配,别忘了初始化也要初始化成负无穷。 容易想到完美匹配模型。 然后考虑路线相交的问题。对于四个定点,构成的两条不共点的线段。相交线段长度之和一定大于不原创 2017-10-16 20:41:05 · 355 阅读 · 0 评论 -
Tarjan
Tarjan#include<bits/stdc++.h>#define M(a,b) memset(a,b,sizeof(a))#define lson l,mid,rt<<1#define rson mid+1,r,rt<<1|1using namespace std;const int MAXN=1007;typedef long long LL;struct Targan{原创 2017-10-15 21:53:11 · 193 阅读 · 0 评论 -
匈牙利板子
匈牙利板子#include<bits/stdc++.h>#define M(a,b) memset(a,b,sizeof(a))#define lson l,mid,rt<<1#define rson mid+1,r,rt<<1|1using namespace std;const int MAXN=2049;typedef long long LL;vector<int> g[MAXN原创 2017-10-15 21:40:25 · 239 阅读 · 0 评论 -
UVALive 3353 Optimal Bus Route Design
UVALive 3353 Optimal Bus Route Design二分图最大完美匹配题目题目给出一个带权有向图,找若干个圈,使得每个结点切好属于一个圈,并且所有圈的总长度最小,如果没有满足条件的就输出N。思路拆点,每个点拆成入和出。建边时比如1到2,就建1到2`。权为负的。 然后这是一个二分图图,跑二分图最大完美匹配。 注意原图不存在的边要加上,权为负无穷。 最后跑完的匹配权值要是小于原创 2017-10-23 18:50:50 · 242 阅读 · 0 评论 -
UVA 11248 Frequency Hopping
UVA 11248 Frequency Hopping网络流题意给定一个有向网络,每条边均有一个容量。问是否存在一个从点1到点N,流量为C的流。如果不存在,是否可以恰好修改一条弧的容量,使得存在这样的流?思路先求一次最大流,如果流量至少为C,则直接输出possible,否则需要修改的弧一定是最小割里的弧。依次把这些弧的容量增加到C,然后再求最大流,看最大流量是否至少为C即可。 很可惜,这样写出来的原创 2017-10-23 13:35:57 · 319 阅读 · 1 评论 -
ZOJ 2532 Internship
ZOJ 2532 Internship网络流题意CIA公司想采用新技术升级网络,在实验测试阶段,他们想升级其中的一段网络以便观察新技术在多大的长度上提升网络的性能,你作为实习生的任务是调查那一段网络能提高CIA总部的宽带。思路找割边集。 判断一段网络可不可以提升网络就要看它是不是满流,如果满流则可能在升级后提升CIA总部的宽带,但是如果提升后并不能增广,即不能提升CIA总部的宽带,所以判断一段是不原创 2017-10-22 20:57:12 · 255 阅读 · 0 评论 -
UVALive 3126 Taxi Cab Scheme
UVALive 3126 Taxi Cab SchemeDAG最小路径覆盖题意现在有n个客户,他们要乘出租车,他们每个人,有一个出发时间t,起点位置和终点位置。现在要安排尽量少的出租车送他们到目的地。出租车必须在客户出发前至少提前一分钟赶到那个客户出发的位置才行,或者这个客户就是这辆出租车的第一个乘客。让你输出需要的最少的出租车数。思路DAG的最小路径覆盖。先开始我们建边,如果客户u和客户v能用一辆原创 2017-10-22 15:58:11 · 272 阅读 · 0 评论 -
UVALive 3415 Guardian of Decency
UVALive 3415 Guardian of Decency二分图最大独立集题意一个老师带他的一群学生去旅游。带走的这群学生整体必须满足给出四个条件之一。问最多能带走多少学生。思路最大独立集就是,选最多的点,使得他们之间没有连边。 将不能共存的学生建边,跑匹配,独立集等于总点减去匹配数。不过注意,匈牙利是对有向二分图的。如果循环使用for(int i=1;i<=n;i++){ for原创 2017-10-21 21:55:36 · 361 阅读 · 0 评论 -
POJ 2186 Popular Cows
POJ 2186 Popular Cowstargan,图论 传送门:POJ 传送门:HustOJ题意给你一个图,如果A认为B很厉害,那么有一条A指向B的边。求被所有其他人都认为很厉害的人的数量。思路思路很简单,targan缩点,求出度为0的连通分量。但是有几个问题,比如这组数据: 4 4 1 2 2 1 1 4 2 3这样应该输出0,因为3和4不认为对原创 2017-03-14 11:50:53 · 167 阅读 · 0 评论 -
POJ 2553 The Bottom of a Graph
POJ 2553 The Bottom of a Graph图论,targan 传送门:POJ 传送门:HustOJ题意 Here are some new definitions. A node v in a graph G=(V,E) is called a sink, if for every node w in G that is reachable from v, v原创 2017-03-13 23:51:40 · 177 阅读 · 0 评论 -
HDU 5883 2016网预 青岛
2016 ACM/ICPC Asia Regional Qingdao OnlineHDU 5883 The Best Path欧拉回路,一笔画 传送门:HDU题意给一个图,每个点有权值,点之间有路。现在要求每一条路仅走一次,到达的点异或和最大。输出最大值,或Impossible。思路类似一笔画问题。网上基本用并查集判断联通,但可能题目要求图必须联通,所以不判也可以。统计每个点的度数,无向图不原创 2016-09-20 22:43:14 · 350 阅读 · 0 评论 -
POJ 3013 Big Christmas Tree
POJ 3013 Big Christmas Tree图论,最短路(变形) 传送门:POJ题意给n个点从1到n标号,下面一行是每个点的权,另外给出m条边,下面是每条边的信息,两个端点和边的权值,边是无向边。你的任务是选出一些边,使这个图变成一棵树,且花费最小。这棵树的花费是这样算的,1号固定为树根,树中每个节点下面的边都有个边权,然后边权乘上这条边的下面所有的子孙后代的点权和。(看sample原创 2016-08-13 22:56:07 · 426 阅读 · 0 评论 -
POJ 1815 Friendship 网络流 Dinic
POJ 1815 FriendshipDinic,拆点建图,割 传送门:POJ题意N个人,S源点,T汇点。然后给你个邻接矩阵,a[i][j]为1表示i和j能联系到彼此。等于0表示彼此不认识。 问你至少删除几个人,让s不能通过中间人联系到t。不能删除s或t。思路问的是删除哪个人,而非删除哪条边,但是割集是边集,所以拆点建图。k点,拆成k和k+n,k表示k入,k+n表示k出。对于源点s、汇点t原创 2016-09-16 16:06:04 · 288 阅读 · 0 评论 -
POJ 3204 Ikki's Story I - Road Reconstruction 网络流初步 Dinic
POJ 3204 Ikki’s Story I - Road Reconstruction网络流初步,理解Dinic这题的价值大概就是稍微理解一下Dinic。。 传送门:POJ题意一个网络流,其中有一类边是你对这条边扩容后,网络流的总流量会变大。问你这种边有多少。思路注意Dinic算法分BFS与DFS两块,其中BFS就是普通的BFS,构造层次图,那个d数组存的就是到源点的最小距离,就是层次图原创 2016-09-12 16:35:57 · 246 阅读 · 0 评论 -
HDU 5876 2016网预 大连
2016 ACM/ICPC Asia Regional Dalian OnlineHDU 5876 Sparse Graph补图最短路,BFS 传送门:HDU题意给你个稀疏图,再给你一源点,求在他的补图中,源点到各点的最短路。注意是无权图。思路无权图其实BFS是很快的。因为最先被BFS访问的点一定是访问的最短路。所以每个点BFS一次过后以后就不用管了。再加一个sum变量,访问过的点数。到n了原创 2016-09-11 18:15:06 · 298 阅读 · 0 评论 -
POJ 2455 Secret Milking Machine 网络流初步 Dinic
POJ 2455 Secret Milking Machine网络流初步,Dinic模板终于碰到Edmond-Karp过不了的题了。。40000条边,O(nm^2)果断T。。 传送门:POJ题意又是农场主约翰(咋最近都是这SB农场主。。为了更好调$教他的“奶%牛”?) 他的农场有N个点(1~N),之间有P条双向的路。他想从点1走到点N,走T次。要求不能重复的走一条路两遍。 求满足条件的方案原创 2016-09-09 20:48:12 · 226 阅读 · 0 评论 -
POJ 3621 Sightseeing Cows
POJ 3621 Sightseeing Cows图论,最优比率环路,01规划 传送门:POJ题意一群奶牛(奶牛。。。)要出去玩,一张无向图,每个点有欢乐值,每条边有路程。求一个旅行路线(环,从哪出发回到哪),每个地方可以走多次,但欢乐值只计算一次。使得总欢乐值/总路程 值最大。思路首先是01规划问题。01规划大概就是,给定两个数组,a[i]表示选取i的收益,b[i]表示选取i的代价。如果选原创 2016-08-17 17:15:52 · 307 阅读 · 0 评论 -
POJ 2449 Remmarguts' Date
POJ 2449 Remmarguts` DateK短路,A*算法+dijkstra 传送门:POJ题意给你个图,给起点终点,k。求第k短路。注意必须走路,不能不走。思路初学A*算法。膜大佬说说自己的理解吧。概念什么的就不说了。对比着dijkstra算法说:建图的时候建两个,一个正向建,一个反向建,反向就是一条路起点终点反过来,距离不变。先用dijkstra跑一遍反向的图,求出估值函数hx原创 2016-08-17 00:42:43 · 297 阅读 · 0 评论 -
CodeVS 1993 草地排水 E-K网络流初步
CodeVS 1993 草地排水网络流初步,Edmond-Karp模板题 传送门:CodeVS题意约翰挖水沟帮美女炮友的田排水。。给你图和每条边的最大流量,求网络最大排水能力。。思路非常明显的网络流,思路没啥好说的,跑板子吧,而且数据奇弱。初学网络流,如果会Dijkstra,那么E-K算法还是比较好理解的,毕竟也是BFS。算法就是用BFS找可行的增广路,说白了就是看哪条路还能增加流量,但原创 2016-09-08 13:58:42 · 247 阅读 · 0 评论 -
POJ 1459 Power Network网络流初步
POJ 1459 Power Network网络流初步,E-K算法模板 传送门:POJ题意n个点,np个发电厂,nc个用电厂,其余是中转站。发电厂只发电,用电厂只用电,中转站不发不用。m条线路,连接各点,有容量上限,无损耗。每组样例,求出所有用电厂最大用电量和。思路还是网络流的板子,加一个超级源s,s到每个发电厂有一条边,容量是发电厂发电量,加一个超级汇t,每个用电厂同理到汇连边。跑网络流。代原创 2016-09-08 16:04:47 · 298 阅读 · 0 评论 -
POJ 1659 Frogs’ Neighborhood
POJ 1659 Frogs’ Neighborhood图论,连通分量,想法题 传送门:HustOJ 传送门:POJ题意给出一个非负整数的序列,问这个序列是否是可图序列,而是否可图根据 Havel-Hakimi定理的方法来构图。思路Havel-Hakimi定理: 1,一个非负整数组成的有限序列如果是某个无向图的序列,则称该序列是可图的。2,判定过程: (1)对当前数列排序,使其原创 2017-03-13 21:56:10 · 232 阅读 · 0 评论 -
[转]图论基础题合集
[转]图论基础题合集原文地址最短路问题此类问题类型不多,变形较少POJ 2449 Remmarguts’ Date(中等) http://acm.pku.edu.cn/JudgeOnline/problem?id=2449 题意:经典问题:K短路 解法:dijkstra+A*(rec),方法很多 相关:http://acm.pku.edu.cn/JudgeOnline/showcontest转载 2016-08-13 19:15:38 · 1118 阅读 · 0 评论 -
POJ 3522 Slim Span
2017寒假集训 3-GPOJ 3522 Slim Spankruskal生成树 传送门:HUSTOJ 传送门:POJ题意图,求生成树,使得树内最大权边与最小权边差最小。思路又是一道以前看过没写的题。。不过这题比较简单,就当是留一下kruskal的板子。要求生成树最大权最小权差最小,那么边要先排序,就想到了kruskal。kruskal选取方式是贪心,所以最小边确定了后最大边必然确定原创 2017-02-03 23:45:29 · 286 阅读 · 0 评论 -
POJ 2391 Ombrophobic Bovines
POJ 2391 Ombrophobic Bovines网络流 传送门:POJ题意F个牛棚,P条路。每个牛棚有初始牛数,能容纳的最大牛数。 下雨了,牛要避雨。每个牛棚不能超过容纳数上限。 牛棚之间有路,路上没有通过牛的数目限制。 问牛走的最远距离最小是多少。无解输出-1。思路关于拆点%%%这题根poj2112很像,同样构图,然后二分。但是有不同。 POJ 2112跟本题很相似,原创 2017-02-03 23:30:37 · 182 阅读 · 0 评论 -
UVALive - 6525 Attacking rooks
2017寒假集训 3-DUVALive - 6525 Attacking rooks二分图匹配 传送门:HUSTOJ 传送门:ACM-ICPC live题意象棋盘,‘.’代表兵,‘X’代表车,就是可以攻击同行或同列的任何棋子(要求中间没有兵)。 给你一个n*n的象棋盘,问你最多可以放多少个车,使得他们不相互攻击。思路之前看过的题。整理一下思路和教训,补一发题解纪念一下吧。。既然是原创 2017-02-03 23:06:34 · 267 阅读 · 0 评论 -
POJ 1966 Cable TV Network
POJ 1966 Cable TV Network网络流,连通度问题 传送门:POJ题意无向图,求点连通度,即最少去掉多少个点使得图不连通。注意一个点的图被视为连通,需要将那个点去掉。思路关于连通度问题:参见。其实图的连通度分为有向图无向图、点连通度边连通度,共四种。基础是有向图边连通度,就是将原图边容量定为1,随便找一源点,枚举汇点跑网络流。证明见参见。对于无向图,比如a与b有容量为10的边原创 2017-02-01 20:41:53 · 337 阅读 · 0 评论 -
POJ 3084 Panic Room
POJ 3084 Panic Room网络流 传送门:POJ题意有N个房间(编号从0到N-1)和一些连通这些房间的门,在这N个房间里面有一个特殊的房间M。现在有一些入侵者入侵到一些房间,为了保护房间M不被入侵者入侵,我们需要锁上一些门使得这些入侵者不能到达房间M。输入有N行分别代表每个房间的信息。每一行行开头有一个字符串,若为NI表示该房间没有被入侵,反之说明该房间已经被入侵。字符串原创 2017-02-01 14:58:08 · 392 阅读 · 0 评论