![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
文章平均质量分 68
穆梓先生
人之为学有难易乎?学之则难者亦易矣,不学则易者亦难矣!
展开
-
hdu 4289 Control
题意:给出一个n个点,m条边组成的无向图,给出S和T。对于图中的每个点,去掉这个点都需要一定的花费。求最少多少花费才能使得S和T之间不连通#include<stdio.h>#include<string.h>#include<algorithm>#include<vector>#include<iostream>#include...原创 2018-05-16 21:11:02 · 148 阅读 · 0 评论 -
poj 2253 Frogger
输出用%lf会错。。。改成%f#include<stdio.h>#include<string.h>#include<algorithm>#include<math.h>#include<iostream>using namespace std;#define INF 0x3f3f3f3f#define MAXN 210...原创 2018-05-10 17:08:36 · 92 阅读 · 0 评论 -
hdu 1245 Saving James Bond(最短路)
题意:一个人从直径为15米的小岛上踩着鲨鱼跳离湖(好奇怪的题目),湖为100*100的正方形。人最大的跳跃距离为D,给出n个鲨鱼的坐标,求人跳出岛的最小距离及在这情况下的跳跃次数。建图有点麻烦#include<stdio.h>#include<algorithm>#include<string.h>#include<queue>#includ...转载 2018-05-10 11:13:10 · 191 阅读 · 0 评论 -
hdu 4034(floyd)
题目大意:给出一个地图,已知每两个点之间的最短路径,求原图最少有多少条边。从给定的图中选择边,如果一条边等于其余两边之和,把该边标记为一个很大的数(即删除)如果一条边比另外两条边大,则输出impossible;#include<stdio.h>using namespace std;#define INF 0x7ffffffint mp[115][115];int n;i...原创 2018-05-03 10:05:05 · 132 阅读 · 0 评论 -
poj Truck History(最小生成树)
给你一个n;n个长为7的字符串;每个字符串表示一个节点,每个节点向其他所有点都有边,边长为两个节点字符串同一位置不同字符的数量;需要你生成最短路的边权和。#include<stdio.h>#include<algorithm>#include<string.h>using namespace std;#define INF 0x3f3f3f3fint ...原创 2018-05-02 21:03:37 · 135 阅读 · 0 评论 -
hdu 3605 Escape(二分图的多重匹配 )
多重匹配即 X 集合上的点对应 Y 集合上多个点 而 Y 集合上的点对应 X 中的一个点。/*多重匹配问题: 解决多重匹配就是记录一下多重匹配的点(简称Y方点)已经匹配了Pi个点。 如果Pi<Ki那么就直接上了,否则的话继续搜索Yi已经匹配的每一个点并将Yi染色, 因为Yi搜一次就需要染色了,而且Y方点最多是10个,所以每次找增广路的深度最多是10, 这样就很快了!!!*/#...原创 2018-04-20 10:02:15 · 123 阅读 · 0 评论 -
nyoj 323 hdu 1532 Drainage Ditches(最大流)
网络流基础网络流(理论详解)网络流(一) 入门到熟练网络流之最大流(FF, EK, Dinic, SAP)#include <cstdio>#include <vector>#include <iostream>#include <queue>#include <cstring>using namespace std;con...原创 2018-04-19 20:13:52 · 147 阅读 · 0 评论 -
Island Transport(网络流之最大流 dicnic优化算法)
dicnic 算法介绍:SYCstudio#include <queue>#include <vector>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 1e5 + 10;const i...转载 2018-04-19 20:04:05 · 796 阅读 · 0 评论 -
hdu 1151 Air Raid(最小路径覆盖)
题目大意:在一个城镇,有m个路口,和n条路,这些路都是单向的,而且路不会形成环,现在要弄一些伞兵去巡查这个城镇,伞兵只能沿着路的方向走,问最少需要多少伞兵才能把所有的路口搜一遍选择最少的边 ,覆盖所有顶点最小路径覆盖(原图不一定是二分图,但必须是有向图,拆点构造二分图):在图中找一些路径,使之覆盖了图中的所有顶点,且任何一个顶点有且只有一条路径与之关联。最小路径覆盖 = |V| - 最大匹配数#i...原创 2018-04-11 20:32:21 · 132 阅读 · 0 评论 -
hdu 1150 Machine Schedule(最小覆盖问题)
题解:Code-Dreamer给你两台机器A和B,A机器有n种模式,B机器有m种模式,初始时都是0,现在给你k个任务,每个任务可以由机器A的x模式完成或者机器B的y模式完成,而每次改变机器的模式都要重启一次,问你最少的重启次数使得完成所有任务!题目思路: 首先初始化为0,所以有模式0完成的任务可以不考虑,然后我们可以考虑建立二分图,机器A和机器B的模式互相连接,某个任...原创 2018-04-11 17:13:26 · 152 阅读 · 0 评论 -
hdu 1068 Girls and Boys(最大独立集 匈牙利算法 )
题意:有n个人,一些人认识另外一些人,选取一个集合,使得集合里的每个人都互相不认识,求该集合中人的最大个数。题解:这题就是求最大独立集,但是这并不是两个集合,而是一个集合,所以求出最大匹配后需要/2,然后代公式: |最大独立集| = |V|-|最大匹配数|#include<bits/stdc++.h>using namespace std;#define MAXN 1005int...原创 2018-04-11 16:25:34 · 195 阅读 · 0 评论 -
POJ - 1062 昂贵的聘礼 (最短路变形 )
大牛的思路:对于从u点出发到w点的路径中,他会跟很多等级的人交易,然而必须满足在路径中的点等级差不很超过一个M值,那么怎么对这样的问题求解呢?我没看报告前是很疑惑的!假设如果给这条路径加上一个附加条件的话,情况可能就有所变化了,要求最短路中的所有点的等级在一个区间内[a,b],如果能够很好的给出这个区间的话,只要对图中的点进行上筛选即可了。这个区间的确定显然不是随便的,那么就要根据一定的条件了,从...转载 2018-05-04 17:49:40 · 118 阅读 · 0 评论 -
poj Silver Cow Party (dijkstra)
题意:首行给出N,M,X代表有N个点,M条边,接着M行每行u,v,w代表u到v权值为w,这是个有向图,求出各点到X加上X到各点最小权值中的最大值。思路:把边的矩阵转置,再求最短路#include<stdio.h>#include<algorithm>using namespace std;#define INF 0x3f3f3f3fint n,m,st;int m...转载 2018-05-11 11:14:57 · 218 阅读 · 0 评论 -
poj Network of Schools (有向图的强联通分量)
题目大意 有N个学校,这些学校之间用一些单向边连接,若学校A连接到学校B(B不一定连接到A),那么给学校A发一套软件,则学校B也可以获得。现给出学校之间的连接关系,求出至少给几个学校分发软件,才能使得所有的学校均可以获得软件;以及,至少需要添加几条单向边连接学校,才能使得给这些学校中任何一所发软件,其余的学校均可以收到。第一是需要给多少个点,才能传遍所有点。第二问是加多少条边,使得整个图变得...转载 2018-05-11 16:30:52 · 239 阅读 · 0 评论 -
hdu 4081 Qin Shi Huang's National Road System(次小生成树)
#include<stdio.h>#include<math.h>#include<string.h>#include<algorithm>using namespace std;#define MAXN 1005#define INF 0x3f3f3f3fint n;double mp[MAXN][MAXN];double M...转载 2018-05-21 17:51:14 · 104 阅读 · 0 评论 -
nyoj 247 虚拟的城市之旅(两次SPFA求两点最大差值)
思路:1> 求 1 到所有点的最短路径, 2> 求 n 到所有点的最长路径3> 做差。 看是否可达,判断是否入过队。 #include<stdio.h>#include<queue>#include<string.h>#include<algorithm>using namespace std;#define ...转载 2018-05-07 15:26:06 · 185 阅读 · 0 评论 -
HDU Going Home(KM算法)
题解:/*给你一个N行M列的矩阵,其中“.”代表空地,“H”代表房子,“m”代表人,其中有n个房子和n个人。现在要求每个人进入一间房子,且人走一步需要支付1美元。求最小需要花费多少美元才能让所有人都进入到房子中(每个人只能进入一间房子,每个房子只能容纳一个人)。解题思路:这道题其实就是二分图最优匹配的变形而已。因为要求的其实是最小权值之和。而KM算法求的是最大权值之和。在建图的时候...转载 2018-05-19 21:13:25 · 225 阅读 · 0 评论 -
hdu Cyclic Tour (1853)
题意:给你一个N个点M条边的带权有向图,现在要你求这样一个值:该有向图中的所有顶点正好被1个或多个不相交的有向环覆盖.这个值就是 所有这些有向环的权值和. 要求该值越小越好.题解://KM二分匹配 #include<cstdio>#include<cstring>#include<algorithm>#define INF 1e9using name...转载 2018-05-19 19:34:06 · 151 阅读 · 0 评论 -
hdu 2255 奔小康赚大钱(KM模板)
模板求最大权匹配 若求最小权匹配,可将权值取相反数,结果取相反数 点的编号从0开始//最大权匹配 #include<cstdio>#define Max 456#include<cstring>using namespace std;#define INF 0x3f3f3f3f int g[Max][Max];//记录 边权 int lx[Max],ly[...转载 2018-05-19 17:54:14 · 133 阅读 · 0 评论 -
hdu 3376 Matrix Again(最大流)
题解:#include<stdio.h>#include<string.h>#include<queue>using namespace std;const int MAXN = 720010;const int MAXM = 3501000;const int INF = 1<<30;struct EDG{ int to,ne...转载 2018-05-19 17:01:43 · 178 阅读 · 0 评论 -
魔法交流活动(kruskal)
魔法交流活动思路:其实就是先求一次最小生成树把最大的边权记录下来,然后对小于这个边权的边做一次最大生成树就可以了#include<stdio.h>#include<algorithm>#include<string.h>using namespace std;const int MAXN = 1e5+7;const int MAXM = 2*1e5+7...转载 2018-05-13 19:28:36 · 191 阅读 · 0 评论 -
hdu Triangle LOVE (拓扑排序)
题目大意:给你一个图,图中任意两点之间要么有正向边,要么有反向边。判断是否含有a->b->c->a的三角形环。思路:其实只要有环,就能构成三角形环。因为任意两点之间要么有正向边,要么有反向边。如果现在有一个四元素环 a->b->c->d->a,若a不指向c,则c必定指向a,所以必定存在三角形环。直接拓扑排序,如果不能排序,则有三角环,输出“Yes”,能拓扑...原创 2018-05-19 14:46:01 · 156 阅读 · 0 评论 -
hdu 2647 Reward(拓扑排序)
题解:题目大意:给你n个人,m个关系,表示a比b的奖金要多。问最少分配的奖金总数是多少。思路:假如有这样一个图:( 箭头表示1比2奖金要多,1比5奖金要多) 不难看出,标号3的那层都是888的奖金,标号2的那层都是889的奖金,标号1的那成是890的奖金,如果我们想要确定每个点权值的话,我们需要知道各个节点之间的全序关系,也就不难想到使用拓扑排序来做这个题,直接能够想到的方法就是直接拆点拆边,完成...转载 2018-05-19 09:23:30 · 133 阅读 · 0 评论 -
hdu xyzzy (SPFA 最长路判环)
转自:WuBaizhe题意:一个有向图,一个人要从点1到点n,每条边的权值为-100~100。但这个人经过这条边时,他的生命值就会加上这条边的权值,初始生命值为100。若无论走哪条路都不能到达点n或者经过某一边的生命值小于等于0时,则表示行动失败。给出信息,判断这个人的行动能否成功。思路:一开始的思路很奇怪(英语题经常会读不太懂题)......直接Floyd找最长路,判断能否到达且到达终点时的生命...转载 2018-04-11 15:53:39 · 186 阅读 · 0 评论 -
xynuoj 1594 最短路径问题
给你几个点,以及点和点之间是否链接,求出起点到终点的距离。注意距离是浮点数。。。#include<stdio.h>#include<algorithm>#include<string.h>#include<math.h>using namespace std;#define INF 0x3f3f3f3f#define MAXN 150//...原创 2018-04-15 19:33:45 · 109 阅读 · 0 评论 -
xynuoj 1596: 香甜的黄油
最短路问题注意:1.使用邻接数组存储会超时,需要使用邻接表。2.从每一个牧场枚举到各个奶牛的距离,并把他们的最小和保存。#include<stdio.h>#include<algorithm>#include<queue>#include<string.h>#include<math.h>using namespace std;...原创 2018-04-15 19:27:54 · 190 阅读 · 0 评论 -
畅通工程再续
畅通工程再续Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 27530 Accepted Submission(s): 8938Problem Description相信大家都听说一个“百岛湖”的地方吧,百岛湖原创 2017-04-27 15:03:48 · 323 阅读 · 0 评论 -
畅通工程续
畅通工程续Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 52448 Accepted Submission(s): 19598Problem Description某省自从实行了很多年的畅通工程计划后,终于修原创 2017-04-27 09:59:33 · 223 阅读 · 0 评论 -
还是畅通工程
还是畅通工程Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 45083 Accepted Submission(s): 20558Problem Description某省调查乡村交通状况,得到的统计表中列出了原创 2017-04-26 21:33:40 · 801 阅读 · 0 评论 -
zzulioj 信道安全
1925: 信道安全Time Limit: 2 Sec Memory Limit: 128 MBSubmit: 168 Solved: 30SubmitStatusWeb BoardDescriptionAlpha 机构有自己的一套网络系统进行信息传送。情报员 A 位于节点 1,他准备将一份情报发送给位于节点 n 的情报部门。可是由于最近国际纷争,战事不断,原创 2017-04-26 20:15:07 · 313 阅读 · 0 评论 -
六度分离
六度分离Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 9339 Accepted Submission(s): 3777Problem Description1967年,美国著名的社会学家斯坦利·米尔原创 2017-04-16 18:38:31 · 391 阅读 · 0 评论 -
迷宫城堡
迷宫城堡Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 10928 Accepted Submission(s): 4892Problem Description为了训练小希的方向感,Gardon建立了转载 2017-04-21 16:17:57 · 202 阅读 · 0 评论 -
引水工程
引水工程 时间限制:2000 ms | 内存限制:65535 KB 难度:3 描述 南水北调工程是优化水资源配置、促进区域协调发展的基础性工程,是新中国成立以来投资额最大、涉及面最广的战略性工程,事关中华民族长远发展。“南水北调工程”,旨在缓解中国华北和西北地区水资源短缺的国家战略性工程。就是把中国长江流域丰盈的水资源抽调一部分送到华北和西北地区。我国南涝北旱,南水北调工程通过跨流域的水原创 2017-05-03 19:30:49 · 448 阅读 · 1 评论 -
确定比赛名次(拓扑排序)
确定比赛名次Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 25599 Accepted Submission(s): 10287Problem Description有N个比赛队(1 Inpu原创 2017-05-02 19:08:25 · 352 阅读 · 0 评论 -
最小生成树之算法记录【prime算法+Kruskal算法】【模板】
最小生成树之算法记录【prime算法+Kruskal算法】【模板】首先说一下什么是树: 1、只含一个根节点 2、任意两个节点之间只能有一条或者没有线相连 3、任意两个节点之间都可以通过别的节点间接相连 4、除了根节点没一个节点都只有唯一的一个父节点 5、也有可能是空树(不含任何节点)最小生成树就是: 在所有数据满足是一棵转载 2017-05-01 19:04:14 · 335 阅读 · 0 评论 -
海岛争霸
海岛争霸时间限制:1000 ms | 内存限制:65535 KB难度:3描述神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等。加勒比海盗,你知道吧?杰克船长驾驶着自己的的战船黑珍珠1号要征服各个海岛的海盜,最后成为海盗王。 这是一个由海洋、岛屿和海盗组成的危险世界。杰克船长准备从自己所占领的岛屿A开始征程,逐个去占领每一个岛屿。面对危险原创 2017-04-30 19:15:04 · 242 阅读 · 0 评论 -
继续畅通工程
继续畅通工程Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 24185 Accepted Submission(s): 10295Problem Description省政府“畅通工程”的目标是使全省任何两个村原创 2017-04-27 15:28:09 · 204 阅读 · 0 评论 -
昂贵的聘礼
昂贵的聘礼Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 50645 Accepted: 15169Description年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长去求亲。酋长要他用10000个金币作为聘礼才答应把女儿嫁给转载 2017-08-13 16:34:34 · 157 阅读 · 0 评论 -
Stockbroker Grapevine
Stockbroker GrapevineTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 37112 Accepted: 20643DescriptionStockbrokers are known to overreact to rumours. You原创 2017-08-13 17:58:57 · 651 阅读 · 0 评论 -
hdu 3367 Pseudoforest(伪森林)
给出一个图,要求出最大的pseudoforest, 所谓pseudoforest就是指这个图的一个子图,这个子图的每个连通分量中最多只能有一个环, 而且这个子图的所有权值之和最大。这个就是所谓的伪森林。这道题用到最大生成树的实现方法(kruskal)。关键在于并查集部分的处理一:两点不在一颗树上 1,两点都不在环里,直接增边; 2,两点只有一个在环里,增边后并标记两点都在环里面; 3,两点都在环里...转载 2018-04-10 11:09:14 · 154 阅读 · 0 评论