图论
卧室踩被
The weakest OIer
展开
-
【GMOJ 1405】【Vijos 1466】 电缆建设
题目大意:教主上电视了,但是蔚蓝城郊区沿河的村庄却因电缆线路老化而在直播的时候停电,这让市长SP先生相当的愤怒,他决定重修所有电缆,并改日播放录像,杜绝此类情况再次发生。 河流两旁各有n,m个村庄,每个村庄可以用二维坐标表示,其中河流一旁的村庄横坐标均为x1,河流另一旁的村庄横坐标均为x2。由于地势十分开阔,任意两个村庄可以沿坐标系直线修建一条电缆连接,长度即为两村庄的距离。要修建若干条电缆...原创 2019-11-10 21:19:38 · 202 阅读 · 0 评论 -
最佳派对
题目大意:每对由一名中国学生与外国学生组成进行表演,每一位外国同学都可以与其他若干个中国同学很好地配合。如何选择派对,使得能选出最多的派对。 对于给定的外国同学与中国同学的配合情况,编程找出一个最佳派对方案,使得能选出最多的派对。 如果所求的最佳派对方案不存在,则在输出文件写入’NO SOLUTION’。解题思路:最大匹配模版题 匈牙利算法 时间复杂度:O(n³)时间复杂...原创 2018-04-13 20:09:32 · 278 阅读 · 0 评论 -
地鼠的困境
题目大意:有N只地鼠M个地洞,S秒内以V的速度跑进地洞则安全,否则则会被猎食者攻击,问有多少地鼠会被攻击。解题思路:匈牙利算法 建图:判断是否能跑回地洞,能跑回则记录,否则就必定被攻击。 然后跑一边邻接表优化后的匈牙利算法 时间复杂度: 朴素匈牙利算法O(N³) 邻接表优化 O(N²) 建图 O(N·M)源程序:#include<c...原创 2018-04-14 15:48:03 · 170 阅读 · 2 评论 -
Knights
题目大意:有一个N*N(1<=n<=200)的棋盘,被“抠”了一些格子,求最多能放多少匹马使得它们不能相互攻击 S为马,X为能攻击到的点解题思路:最大独立集=总顶点数-最大匹配数. 我们发现,相邻的两个点绝对不能相互攻击,然后,有以此为基础发现,奇数点(奇数点x[i][j]的定义是(i+j)%2==1),不能攻击偶数点(偶数点则不为奇数点的点),这样就优化了将近一半...原创 2018-04-14 16:17:56 · 120 阅读 · 0 评论 -
Asteroids
题目大意:给出一个N*N的矩阵,矩阵中有M个敌人,每个子弹可以消灭一横行或者一竖行的敌人,问最少用多少子弹消灭所有敌人。解题思路:最小点覆盖模版题 最小点覆盖数=最大匹配数 建图:建2·N个点,把敌人所在行和列连接,求最大匹配 跑一遍邻接表优化后的匈牙利算法。源程序:#include<cstdio>#include<cstring>using ...原创 2018-04-14 16:27:18 · 106 阅读 · 0 评论 -
Mzc和体委的争夺战
题目大意:n个点,m条边,从1出发到n的最小边权和 边权&gt;0解题思路:SPFA模板Accepted code:#include&lt;cstdio&gt;#include&lt;cstring&gt;using namespace std;int a[201][201],n;int min(int x,int y) { retur原创 2018-08-29 20:06:01 · 164 阅读 · 3 评论 -
[USACO07NOV]牛栏Cow Hurdles
题目解题思路:今天突然迷上了最短路的题目 本来想巩固一下SPFA(毕竟老师讲课的那次我请假了) 结果看到了Floyd的题目,于是也一起做了Accepted code:#include<cstdio>#include<cctype>#include<cstring>#include<algorithm>#define...原创 2018-08-29 23:05:02 · 218 阅读 · 0 评论 -
最短路
题目大意:给定n个点的带权有向图,求从1到n的路径中边权之积最小的路径。解题思路:SPFA模板Accepted code:#include&lt;cstdio&gt;#include&lt;queue&gt;#define N 1005#define inf 1000000000#define MOD 9987using namespace std;st..原创 2018-09-06 16:15:24 · 190 阅读 · 0 评论 -
医院设置
题目大意:给一个无向图,然后,每个点有一定的居民数量,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为1。解题思路:n&lt;=100 于是就可以用FloydAccepted code:#include&lt;cstdio&gt;#include&lt;algorithm&gt;#include&lt;原创 2018-09-06 16:33:16 · 182 阅读 · 0 评论 -
「伪模板」主席树
题目:洛谷P3701解题思路:和主席树没有任何卵关系还有这居然是一道黑题!!我们把每个byx的人和S连边,流量为寿命把每个手气君的人和T连边,流量为寿命对于每个J,寿命加上本方膜法师的数量然后跑一边模板DinicAccepted code:#include<queue>#include<cstdio>#include<cstring>#...原创 2019-12-21 07:38:44 · 297 阅读 · 0 评论 -
太空飞行计划
题目:W 教授正在为国家航天中心计划一系列的太空飞行。每次太空飞行可进行一系列商业性实验而获取利润。现已确定了一个可供选择的实验集合E={E1,E2,…,Em},和进行这些实验需要使用的全部仪器的集合I={I1,I2,…In}。实验Ej需要用到的仪器是I的子集RjÍI。配置仪器Ik的费用为ck美元。实验Ej的赞助商已同意为该实验结果支付pj美元。W教授的任务是找出一个有效算法,确定在一次太空飞...原创 2018-08-12 19:21:51 · 184 阅读 · 0 评论 -
JZOJ 6286 走格子 【bfs】【最短路】
题目大意:给出一个n×mn\times mn×m的矩阵,由 ′.′、 ′#′、 ′C′、 ′F′'.'、\ '\#'、\ 'C'、\ 'F'′.′、 ′#′、 ′C′、 ′F′ 组成′....原创 2019-08-09 19:48:43 · 265 阅读 · 4 评论 -
luogu P3388 割点【Tarjan模板】
题目大意:求nnn个点mmm条边的无向图的割点解题思路:TarjanTarjanTarjan注意:由于图不一定联通,所以我们要在每个联通块都跑一遍TarjanTarjanTarjanAccepted code:Accepted\ code:Accepted code:#include<cstdio>#include<cstring>#...原创 2019-01-28 16:46:19 · 171 阅读 · 0 评论 -
头晕的奶牛 C组模拟赛
题目大意:给一个图,有n个点,m1条单向边,m2条双向边,保证单向边不形成环,求把双向边怎么变为单向边使得这个图没环解题思路:拓扑排序源程序:#include<cstdio>#include<queue>using namespace std;struct node{ int y,next;}c[100001];int ...原创 2018-07-08 21:48:23 · 149 阅读 · 0 评论 -
飞行员配对方案
题目大意:只要外籍飞行员与英籍飞行员匹配就可以驾驶一架飞机,共有n个飞行员,其中有m个外籍的,问最多有多少对匹配的飞行员(一个外籍一个英籍)解题思路:方法:网络流——最大流 匈牙利算法 这里用网络流——最大流 首先建一个源点和一个汇点,源点与外籍飞行员间建立一条有向边(外籍飞行员方向),汇点与英籍飞行员建立一条有向边(英籍飞行员方向)。 所有边的容量为1,也就是说流...原创 2018-06-20 20:21:56 · 467 阅读 · 0 评论 -
假期的宿舍
题目大意:有n个人,分别是:在校的学生,回家的学生,来看望在校学生的学生,有人走了,就有空床,有人来了,就需要床,只能睡自己的床或者直接认识的人的床. 读入有些烦,要仔细看: 第一行一个数 T 表示数据组数。接下来 T 组数据,每组数据第一行一个数n 表示涉及到的总人数。接下来一行 n 个数,第 i 个数表示第 i 个人是否是在校学生 (0 表示不是,1 表示是)。再接下来一行 n 个数,...原创 2018-06-21 15:21:48 · 244 阅读 · 0 评论 -
网络流——最大流【模版】&费用流【模版】
最大流模版题目大意:给出一个网络图,以及其源点和汇点,求出其网络最大流。解题思路:Dinic源程序:#include<cstring>#include<cstdio>#include<queue>#define inf 1e9using namespace std;queue<int> q;int n,m,s,t,...原创 2018-06-22 11:32:11 · 336 阅读 · 0 评论 -
订货【费用流】
题目大意:有n个月,第i个月需要ui件货物,每个单位的货物再第i个月的价格是di,仓库容量为s,每放在仓库贮存1个月,每个单位的货物就要使用m元,若当月卖了出去则不用付.解题思路:赤裸裸的费用流 其实网络流最重要的就是建图 图建好了套模版 下面是建图方式: 1.建立源点与每个月连接,流量为无穷大,费用为di. 2.建立汇点与每个月连接,流量为ui,费用为0. 3.第i个...原创 2018-06-22 15:35:24 · 174 阅读 · 0 评论 -
晨跑【最小费用最大流】
题目:晨跑解题思路:建图:把除了源点和汇点的其它路口拆成两个点,入点和出点,两点之间边最大流量为1,费用为0,其他流量为inf,费用为长度:源程序:#include<cstdio>#include<queue>#define inf 1e9#define min(a,b) a>b?b:ausing namespace std;st...原创 2018-06-25 20:20:12 · 132 阅读 · 0 评论 -
单源最短路径(弱化版)
题目大意:给出一个有向图,请输出从S出发到所有点的最短路径长度。解题思路:看到数据范围 Spfa 然后int错了,我就把inf 1099^{9}改成了2147483647 一看,dis会炸掉,于是我把dis改成了long long,保险期间,inf 也改成了long long看H*B的码风,我打算试一试,发现并不爽,但是我懒得改Accepted code:献上本...原创 2018-09-12 16:16:18 · 149 阅读 · 0 评论 -
最短路(path)
#include&amp;amp;amp;lt;queue&amp;amp;amp;gt;#include&amp;amp;amp;lt;cstdio&amp;amp;amp;gt;#include&amp;amp;amp;lt;cstring&amp;amp;amp;gt;#include&amp;amp;amp;lt;iostream&amp;amp;amp;gt;原创 2018-09-13 15:55:17 · 152 阅读 · 1 评论 -
道路重建
题目大意:一个无向图,n个点m条边(路),有d条边(路)烂掉了,你的任务是修复一些道路使A与B之间的连接恢复,并要求修复的道路长度最小。解题思路:n&amp;lt;=100floyd可以过至于怎么做:我们要求修的道路最短要修多长所以好的就不用管了,边权设为0就好还有这道题是双向边注意一下Accepted code:#include&amp;lt;queue&amp;gt;#include&amp;lt原创 2018-09-22 08:00:32 · 201 阅读 · 0 评论 -
洛谷 P3393 逃离僵尸岛
题目大意:传送门解题思路:将所有被控制的点视为点000,将所有与被控制的点连边的点连向000,暂定所有边权为111然后以000为起点跑一遍dijdijdij,如果dis[i]≤sdis[i]\leq sdis[i]≤s,那么iii是危险点将与iii连边的边权定为QQQ,与被控制点的连边边权定为infinfinf,其它边为PPP特殊的,起点为1 or n1\ or\ ...原创 2019-01-31 12:10:13 · 505 阅读 · 0 评论 -
SSL 3.02 模拟赛 T2 GF打Dota 【最短路】【次短路】
题目大意:有一个无向图,求最短路和次短路解题思路:跑两次SPFASPFASPFA,第一次以111为起点,把111到iii的最短距离记录为disi,0dis_{i,0}disi,0第二次以nnn为起点,把nnn到iii的最短距离记录为disi,1dis_{i,1}disi,1然后枚举每个点,尝试以其为中转站,记为点iii,枚举与iii相连的边,边的终点记录为yyy,那么这样的路径长度就...原创 2019-03-02 16:47:41 · 162 阅读 · 0 评论 -
JZOJ 4671.【提高A组模拟赛 T1】 World Tour
题目大意:给出一个有向图,从第i个点到第j个点XX只会走最短路,问去哪四个城市使得他走的路最长。解题思路:bfs求多源最短路,然后求出对于每个点来说的距离它最远的点和次远的点,反最远点和反次远点。之后枚举中间两个点,然后如果最远的相同就一个用次远,否则都用最远。Accepted codeAccepted\ codeAccepted code#include<c...原创 2019-03-27 16:17:25 · 157 阅读 · 0 评论 -
租用游艇
题目大意:长江游艇俱乐部在长江上设置了n 个游艇出租站1,2,…,n。游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站i 到游艇出租站j 之间的租金为r(i,j),1<=i<=j<=n。试设计一个算法,计算出从游艇出租站1 到游艇出租站n 所需的最少租金。对于给定的游艇出租站i 到游艇出租站j 之间的租金为r(i,j),1<=i解...原创 2018-08-29 20:03:23 · 590 阅读 · 0 评论 -
过路费 C组模拟赛
题目大意:给出一个图,每个点都有点权,每条边都有边权,K次询问使得x到y的(边权+最大点权)最小解题思路:数据比较小,Floyd就可以过 然后稍稍变形就可以了源程序:#include<cstdio>#include<cstring>#include<algorithm>#define min(a,b) a<b...原创 2018-07-08 18:59:21 · 153 阅读 · 0 评论 -
Agri-Net【最短路】
题目:[Agri-Net]https://www.luogu.org/problemnew/show/P1546解题思路:Dij源程序:#include <cstdio>#define r(i,a,b) for(int i=a;i<=b;i++)using namespace std;int a[101][101],v[101],min,ans,n,p;...原创 2018-06-25 21:00:58 · 187 阅读 · 0 评论 -
医院设置
题目大意:Description 设有一棵二叉树(如右图)。其中,圈中的数字表示结点中居民的人口。圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为1。如 右图中,若医院建在: 1处,则距离和=4+12+2*20+2*40=136 3处,则距离和=4*2+13+20+40=81 ………….原创 2018-01-12 20:09:37 · 197 阅读 · 0 评论 -
小萨的烦恼
题目大意:Description 圣诞节又要到了!小萨希望和自己心仪的MM一起出去度过一个浪漫的的圣诞节。他进行了详尽的准备,找到了N个很适合他们去约会的好地方,但无奈小萨和他的MM都是初三学校,晚上必须回学校上晚修,没有足够的时间让他们走遍每一个地方。迫于无奈,小萨选择了一个最合适的地方S。小萨打算和他的MM一起步行到那个地方,那样他们就有很多时间来聊天玩乐,但是无奈时间有限,小萨决原创 2018-01-12 19:59:08 · 154 阅读 · 0 评论 -
洛谷 P1119 灾后重建
题目大意:传送门解题思路:看到数据很明显的FloydFloydFloyd但是问题来了,如果每次询问都跑一遍FloydFloydFloyd时间复杂度是:O(Qn3)O(Qn^3)O(Qn3),会TTT飞我们发现询问的时间是递增的,那么我们可以在FloydFloydFloyd找中转站的循环,也就是第一层循环中判断是否能在中转站修好之后走Accepted code:Acc...原创 2019-01-31 10:46:05 · 207 阅读 · 0 评论 -
洛谷 P3906 Geodetic集合
题目大意:nnn个点mmm条遍的无向图,如果点iii在点uuu到点vvv的最短路径(uuu到vvv的边数最少)上,那么记这些点为集合I(u,v)I(u,v)I(u,v)有kkk个询问,问集合I(u,v)I(u,v)I(u,v)解题思路:每次询问以u为起点跑一遍DijDijDij,将以uuu为起点到其他点的最短路记为dis1dis1dis1,再以vvv为起点跑一遍DijDijDij,记为d...原创 2019-01-31 10:38:01 · 247 阅读 · 0 评论 -
遨游 9.22模拟赛
题目大意:N个省M条路,然后每个省有一些城市,M条路连接着两座城市(保证是连通图),有什么省级优惠:连接一个省中的两个城市的路费得到xi%的优惠,连接两个省的路得到(xi% + xj%) / 2的优惠,还有什么国家级优惠,如果这个价格在L—R之间则免费,问L & R的大小解题思路:dfs + 二分嵌套二分出 L & R,判断条件是满足(价格>=L &&...原创 2018-09-23 15:04:28 · 151 阅读 · 0 评论 -
10.24 TRAVEL
题目解题思路:枚举lll,用spfa求出最大的rrr我们发现会超时又发现lll一定是某一条边得lll所以我们将所有边按照l排序再枚举所有lll,枚举同事求出rrr判断是否是最优解Accepted code:#include<queue>#include<cstdio>#include<cstring>#include<iostrea...原创 2018-11-01 11:58:48 · 158 阅读 · 0 评论 -
最优贸易
题目大意:有N个点,M条边(或有向或无向),第i个点的权值为P[i],可以重复经过一个点,求在图上找出一条1到n的道路,使得道路中的某两个节点的权值差的绝对值最大。解题思路:我们把这个图看做是一个有向图,无向边看做两条方向相反的有向边,建两个图:原图和反图先在原图以1为起点跑SPFA or Dijkstra求出D[x]表示从节点1到节点x的所有路径中能够经过的权值最小的节点的权值。在反图...原创 2018-11-30 19:15:57 · 122 阅读 · 0 评论 -
Telephone Lines 电话线
题目大意:在一个无向图中找出一条1到n的路径,我们可以选择K条边使其权值变为0,我们的目的是使得路径上第K+1大的边最小解题思路:解法一:我们用dp的思想dis[x][p]表示1到x中已经指定p条边权值为0,我们用SPFA对其进行转移,也就是说我们会从dis[x][p]中转移出两个状态:dis[y][p] 和 dis[y][p+1]怎么转移?因为dis[y][p]表示的是1到y中已经...原创 2018-11-30 21:33:00 · 247 阅读 · 0 评论 -
[USACO11JAN]道路和飞机Roads and Planes
题目大意:T个城镇有M1条道路,M2条航线,0<=道路的花费<=10000,-10000<=航线的花费<=10000,可以通过道路从ai到bi或从bi到ai(双向边),航线只能从ai到bi且不能通过任何道路或航线从bi到ai(只能出不能进)。求S到所有城镇的花费解题思路:解法一(未A):我们先把所有双向边(道路)加到图里,然后就有若干个联通块,把每个联通块看...原创 2018-12-06 16:39:48 · 366 阅读 · 0 评论 -
Sorting It All Out
题目大意:一共有N个变量,给出M个关系1.如果给出关系之间有矛盾,则输出Inconsistency found after D relations.其中D为在给出的第D中关系中发现有矛盾2.如果没有矛盾并且在前d个关系中找出所有变量之间的大小关系,则输出:Sorted sequence determined after d relations: ABCD.ABCD 表示 A &amp;amp;amp;lt;...原创 2018-12-07 20:44:15 · 257 阅读 · 0 评论 -
JZOJ Day9 B组 T2 游历的路线
题目大意:有nnn个点,每个点之间的边权是一个周期。求从111出发经过mmm条边到nnn的最小权值解题思路:dpdpdp设fi,jf_{i,j}fi,j表示第iii天到达第jjj个点的最少花费则得出转移方程:fi,j=min(fi,j,&nbsp;fi−1,k+ak,j,(ai,j,0−1)&nbsp;mod&nbsp;k+1)f_{i,j} = min(f_{i,j},\ f_{...原创 2019-01-27 21:43:54 · 303 阅读 · 0 评论 -
JZ Day12 T3 san
题目大意:小明经常去N 个地点,其中有些地点之间有直接的无向道路(共M 条这样的道路),可以直接互相到达,这些道路的长短不一。由于小明对这些道路都很熟悉,无论起点和终点在哪里,总能走最短路。小明有严重的强迫症,认为奇数很不和谐,如果他某一天从一个地点去另一个地点走过的路程是奇数,就会很不爽,但他又不想白白多走路,所以遇到最短路长度是奇数的情况就只能忍了。如果从某个地点A 到另一个地点B 的最短...原创 2019-01-30 21:03:05 · 194 阅读 · 0 评论