图论
AKone123456
这个作者很懒,什么都没留下…
展开
-
F - Islands---------------------------------思维(强连通分量+缩点)
题意:给定n个点,m条有向边。问最少添加多少条边使得每个点都能到达其他点解析:求出强连通分量,然后找出入度为0的mx 和出度为0的mx1输出max(mx,mx1)即可注意强连通分量个数为1时,输出0#include <bits/stdc++.h>using namespace std;const int N=4e5+1000;int e[N<<1],ne[N<<1],h[N<<1],idx;int dfn[N],low[N],cnt..原创 2020-08-18 20:02:23 · 178 阅读 · 0 评论 -
Graph------------------------------思维(最小异或生成树模板)
解析:我们将边权转换为点权,然后跑最小异或生成树即可。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e5+10000;int h[N<<2],e[N<<2],ne[N<<2],w[N<<2],idx,tot;int t,x,y,z,n;int dis[N<<2];int s[N<<4][2];l..原创 2020-07-26 22:43:21 · 155 阅读 · 0 评论 -
G. Xor-MST-----------------------思维(最小异或生成树+分治+字典树+Boruvka思想)
题意:给定n个顶点无向图,每个顶点都有一个点权, u和v的边权就是 (点权u xor v)问最小生成树权重是多少解析:根据Boruvka思想 每个独立的连通块连接起来必须是连接权值最小的边,那么本题如何找到最小的边,那就是给需要连接的连通块里的每个数分解成二进制建字典树。然后跑字典树找到最小的权值边即可。为了不影响后面的处理,每次都要把当前的字典树删掉;我们给这些节点权值从小到大排序 因为我们要按位讨论。对于第i位为0的,我们放到左边对于第i位为1的,我们放到右边然后递归分治处理建字典.原创 2020-07-26 22:41:15 · 235 阅读 · 0 评论 -
星球游戏------------------------------思维(最短路+虚拟源点)
解析:建立一个虚拟源点连接牛牛所占领得星球,然后虚拟源点作为最短路得起点。即可int w[500005],e[500005],ne[500005],h[500005],idx;void add(int a,int b,int c){ e[idx]=b;w[idx]=c;ne[idx]=h[a];h[a]=idx++;}int n,p,q,x,y,z;int dist[500005];bool st[500005];void dij(int n){ priority_queue&..原创 2020-07-26 10:50:33 · 197 阅读 · 0 评论 -
E. Weights Distributing---------------------------------思维(bfs+贪心)
题意:给定n个点,m条边,和m个边权。问你从a走到b,再从b走到c 最短的路程是多少注意(整张图是无权图,权值需要自己添加)解析:会出现两种情况第一种情况: a直接走到b,b直接走到a 那么最短路程一定是 把最小的边权加上去。第二种情况: a->x ->b->x->c 会出现这种情况比如样例一就是的。所以我们可以枚举x(x可以是a,b,c) 随...原创 2020-04-24 17:11:37 · 218 阅读 · 0 评论 -
小雨坐地铁------------------------------图论(分层图最短路)
解析:对每一条地铁线建层(正常的建图),最后一层建虚拟原点。最后一层建图方式:其余点到虚拟点的权值为0虚拟点到其余点的权值为乘坐该地铁线的费用引用Kur1su大佬的图#include<bits/stdc++.h>#define x first#define y secondusing namespace std;const int N=1e6+1000;i...原创 2020-04-22 14:27:39 · 346 阅读 · 0 评论 -
[JLOI2011]飞行路线----------------------------------图论(分层图最短路模板)
解析:分层最短路:分层图: 有多个平行的图模型: 在一个正常的图上进行k次决策,对于每次决策都不影响图的结构,只影响目前的状态或代价。一般将决策前的状态和决策后的状态连接一条权值为决策代价的边,表示付出该代价后,可以转移状态建图有两种方法:1.建图直接建k+1层图2.多开一维记录信息本篇只介绍第一种方法我们建k+1层图。然后有边的两个点,多建一条到下一层边权为0的单向边,如果走...原创 2020-04-22 12:44:22 · 170 阅读 · 0 评论 -
旅旅旅游-----------------------------------思维(图论)
解析:先跑一遍最短路,然后把这条最短路路径给标记下来。然后从dfs是否能从1跑到n,如果可以输出YES 否输出NO#include<bits/stdc++.h>#define x first#define y secondusing namespace std;typedef long long ll;typedef pair<ll,ll> PII;...原创 2020-04-19 18:48:42 · 162 阅读 · 0 评论 -
最短路变短了------------------------------------思维(最短路+套路题)
解析:用dij预处理出1到其余点的最短路,和n到其余点的最短路设最初的最短路为dn如果(x,y)这条路,路径反转使得最短路变短了。说明新的最短路一定经过这条边所以我们只要计算1->y + n->x + w(x,y) < dn 如果满足输出YES否输出NO#include<bits/stdc++.h>#define x first#define ...原创 2020-04-11 13:55:27 · 457 阅读 · 0 评论 -
问题 G: 抢占城堡-----------------------------------思维
题目描述冬冬正和他的朋友一起玩抢占城堡的游戏,该游戏可以表示为大小为n×m的网格,每个格子最多只能容下一座城堡,每个格子有三种状态:1、空城堡用“.”表示;2、障碍物用“”表示,所有玩家都不能通过它;3、一名游戏玩家的编号即为数字x,表示该城堡被x占领。游戏是按玩家编号从小到大轮流进行的,在每一轮中,玩家轮流扩张势力范围:首先,第一个玩家扩张,然后第二个玩家扩张,依此类推。扩张规则如下:...原创 2020-03-30 11:54:50 · 326 阅读 · 0 评论 -
World Cup Fever-------------------------------------------思维(最短路)
题意:有两个队伍,第一支队伍从1号球员开始传球,一直传到N号球员。第二支队伍会阻拦第一支队伍。请问第一支球队是否能从1号球员传到n号球员传球:当a和b之间没有人时,可以 传球。不能传球:当a和b之间存在人时,无法传球解析:因为n的范围很小,所以我们枚举每个球员之间是否可以传球。可以传球我们把d[i][j]=1,不能传球设置为d[i][j]=0x3f3f3f3f。然后floyd...原创 2020-03-26 13:45:27 · 188 阅读 · 0 评论 -
问题 M: Playing Tag on Tree------------------------------思维(图论)
题目描述We have a tree with N vertices. The i-th edge connects Vertex Ai and Bi bidirectionally.Takahashi is standing at Vertex u, and Aoki is standing at Vertex v.Now, they will play a game of tag as ...原创 2020-03-25 16:21:08 · 326 阅读 · 0 评论 -
问题 J: Shorten Diameter-------------------------------思维(图论+树的直径)
题目描述Given an undirected tree, let the distance between vertices u and v be the number of edges on the simple path from u to v. The diameter of a tree is the maximum among the distances between any tw...原创 2020-03-24 22:41:45 · 250 阅读 · 0 评论 -
问题 B: 会议------------------------------思维(树的重心+dfs/bfs+套路题)
题目描述有一个村庄居住着n个村民,有n-1条路径使得这n个村民的家联通,每条路径的长度都为1。现在村长希望在某个村民家中召开一场会议,村长希望所有村民到会议地点的距离之和最小,那么村长应该要把会议地点设置在哪个村民的家中,并且这个距离总和最小是多少?若有多个节点都满足条件,则选择节点编号最小的那个点。输入第一行。一个数n,表示有n个村民。接下来n-1行,每行两个数字a和b,表示村民a的家和...原创 2020-03-22 23:56:39 · 215 阅读 · 0 评论 -
问题 K: Coloring Edges on Tree-------------------------------思维(图着色)
题目描述Given is a tree G with N vertices. The vertices are numbered 1 through N, and the i-th edge connects Vertex ai and Vertex bi.Consider painting the edges in G with some number of colors. We want ...原创 2020-03-16 22:55:52 · 214 阅读 · 0 评论 -
虫洞---------------------------------------图论(spfa求负环)
农夫约翰在巡视他的众多农场时,发现了很多令人惊叹的虫洞。虫洞非常奇特,它可以看作是一条 单向 路径,通过它可以使你回到过去的某个时刻(相对于你进入虫洞之前)。农夫约翰的每个农场中包含N片田地,M条路径(双向)以及W个虫洞。现在农夫约翰希望能够从农场中的某片田地出发,经过一些路径和虫洞回到过去,并在他的出发时刻之前赶到他的出发地。他希望能够看到出发之前的自己。请你判断一下约翰能否做到这一点...原创 2020-02-22 11:47:44 · 241 阅读 · 0 评论 -
北极通讯网络---------------------------------图论(最小生成树)
北极的某区域共有 n 座村庄,每座村庄的坐标用一对整数 (x,y) 表示。为了加强联系,决定在村庄之间建立通讯网络,使每两座村庄之间都可以直接或间接通讯。通讯工具可以是无线电收发机,也可以是卫星设备。无线电收发机有多种不同型号,不同型号的无线电收发机有一个不同的参数 d,两座村庄之间的距离如果不超过 d,就可以用该型号的无线电收发机直接通讯,d 值越大的型号价格越贵。现在要先选择某一种型号的...原创 2020-02-21 16:19:14 · 277 阅读 · 0 评论 -
新的开始------------------------------图论(最小生成树+虚拟源点)
发展采矿业当然首先得有矿井,小 FF 花了上次探险获得的千分之一的财富请人在岛上挖了 n 口矿井,但他似乎忘记了考虑矿井供电问题。为了保证电力的供应,小 FF 想到了两种办法:在矿井 i 上建立一个发电站,费用为 vi(发电站的输出功率可以供给任意多个矿井)。将这口矿井 i 与另外的已经有电力供应的矿井 j 之间建立电网,费用为 pi,j。小 FF 希望你帮他想出一个保证所有矿井电力供应的...原创 2020-02-21 15:36:03 · 327 阅读 · 0 评论 -
连接格点--------------------------图论(最小生成树)
有一个 m 行 n 列的点阵,相邻两点可以相连。一条纵向的连线花费一个单位,一条横向的连线花费两个单位。某些点之间已经有连线了,试问至少还需要花费多少个单位才能使所有的点全部连通。输入格式第一行输入两个正整数 m 和 n。以下若干行每行四个正整数 x1,y1,x2,y2,表示第 x1 行第 y1 列的点和第 x2 行第 y2 列的点已经有连线。输入保证|x1−x2|+|y1−y2|=1...原创 2020-02-21 14:58:13 · 285 阅读 · 0 评论 -
排序-----------------------图论(flyod+传递闭包)
给定 n 个变量和 m个不等式。其中n 小于等于26,变量分别用前 n 的大写英文字母表示。不等式之间具有传递性,即若A>B 且B>C ,则A>C。请从前往后遍历每对关系,每次遍历时判断:如果能够确定全部关系且无矛盾,则结束循环,输出确定的次序;如果发生矛盾,则结束循环,输出有矛盾;如果循环结束时没有发生上述两种情况,则输出无定解。输入格式输入包含多组测试数据。每...原创 2020-02-19 22:24:10 · 196 阅读 · 0 评论 -
牛的旅行---------------------------图论(Floyd+思维)
农民John的农场里有很多牧区,有的路径连接一些特定的牧区。一片所有连通的牧区称为一个牧场。但是就目前而言,你能看到至少有两个牧区不连通。现在,John想在农场里添加一条路径(注意,恰好一条)。一个牧场的直径就是牧场中最远的两个牧区的距离(本题中所提到的所有距离指的都是最短的距离)。考虑如下的两个牧场,每一个牧区都有自己的坐标:图 1 是有 5 个牧区的牧场,牧区用“*”表示,路径用...原创 2020-02-15 23:20:58 · 146 阅读 · 0 评论 -
选择最佳线路----------------------------------图论(最短路+虚拟源点)
有一天,琪琪想乘坐公交车去拜访她的一位朋友。由于琪琪非常容易晕车,所以她想尽快到达朋友家。现在给定你一张城市交通路线图,上面包含城市的公交站台以及公交线路的具体分布。已知城市中共包含 n 个车站(编号1~n)以及 m 条公交线路。每条公交线路都是 单向的,从一个车站出发直接到达另一个车站,两个车站之间可能存在多条公交线路。琪琪的朋友住在 s 号车站附近。琪琪可以在任何车站选择换乘其它公...原创 2020-02-14 11:32:39 · 482 阅读 · 1 评论 -
道路与航线-------------------------图论(最短路+拓扑排序+dfs)
农夫约翰正在一个新的销售区域对他的牛奶销售方案进行调查。他想把牛奶送到T个城镇,编号为1~T。这些城镇之间通过R条道路 (编号为1到R) 和P条航线 (编号为1到P) 连接。每条道路 i 或者航线 i 连接城镇Ai到Bi,花费为Ci。对于道路,0≤Ci≤10,000;然而航线的花费很神奇,花费Ci可能是负数(−10,000≤Ci≤10,000)。道路是双向的,可以从Ai到Bi,也可以从B...原创 2020-02-13 21:21:58 · 277 阅读 · 0 评论 -
通信线路-------------------------------图论(最短路+二分+双端队列广搜)
在郊区有 N 座通信基站,P 条 双向 电缆,第 i 条电缆连接基站Ai和Bi。特别地,1 号基站是通信公司的总站,N 号基站位于一座农场中。现在,农场主希望对通信线路进行升级,其中升级第 i 条电缆需要花费Li。电话公司正在举行优惠活动。农产主可以指定一条从 1 号基站到 N 号基站的路径,并指定路径上不超过 K 条电缆,由电话公司免费提供升级服务。农场主只需要支付在该路径上剩余的电缆...原创 2020-02-13 13:52:17 · 277 阅读 · 0 评论 -
新年好------------------------------图论(最短路+dfs)
重庆城里有 n 个车站,m 条 双向 公路连接其中的某些车站。每两个车站最多用一条公路连接,从任何一个车站出发都可以经过一条或者多条公路到达其他车站,但不同的路径需要花费的时间可能不同。在一条路径上花费的时间等于路径上所有公路需要的时间之和。佳佳的家在车站 1,他有五个亲戚,分别住在车站 a,b,c,d,e。过年了,他需要从自己的家出发,拜访每个亲戚(顺序任意),给他们送去节日的祝福。怎...原创 2020-02-13 11:30:33 · 195 阅读 · 0 评论 -
昂贵的聘礼--------------------------图论+创建虚拟源点+最短路
年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长去求亲。酋长要他用10000个金币作为聘礼才答应把女儿嫁给他。探险家拿不出这么多金币,便请求酋长降低要求。酋长说:”嗯,如果你能够替我弄到大祭司的皮袄,我可以只要8000金币。如果你能够弄来他的水晶球,那么只要5000金币就行了。”探险家就跑到大祭司那里,向他要求皮袄或水晶球,大祭司要他用金币来换,或者替他弄来其...原创 2020-02-12 17:03:02 · 148 阅读 · 0 评论 -
最优乘车------------------------图论(BFS)/转换最短路
H城是一个旅游胜地,每年都有成千上万的人前来观光。为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴士线路。每条单程巴士线路从某个巴士站出发,依次途经若干个巴士站,最终到达终点巴士站。一名旅客最近到H城旅游,他很想去S公园游玩,但如果从他所在的饭店没有一路巴士可以直接到达S公园,则他可能要先乘某一路巴士坐几站,再下来换乘同一站台的另一路巴士, 这样换乘几次后到...原创 2020-02-12 16:03:08 · 123 阅读 · 0 评论 -
最小花费---------------------图论(dijkstra)/转换成最短路
在 n 个人中,某些人的银行账号之间可以互相转账。这些人之间转账的手续费各不相同。给定这些人之间转账时需要从转账金额里扣除百分之几的手续费,请问 A 最少需要多少钱使得转账后 B 收到 100 元。输入格式第一行输入两个正整数 n,m,分别表示总人数和可以互相转账的人的对数。以下 m 行每行输入三个正整数 x,y,z,表示标号为 x 的人和标号为 y 的人之间互相转账需要扣除 z 的手续...原创 2020-02-12 15:28:31 · 165 阅读 · 1 评论 -
香甜的黄油--------------------------图论(SPFA)/最短路
农夫John发现了做出全威斯康辛州最甜的黄油的方法:糖。把糖放在一片牧场上,他知道 N 只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油。当然,他将付出额外的费用在奶牛上。农夫John很狡猾,就像以前的巴甫洛夫,他知道他可以训练这些奶牛,让它们在听到铃声时去一个特定的牧场。他打算将糖放在那里然后下午发出铃声,以至他可以在晚上挤奶。农夫John知道每只奶牛都在各自喜欢的牧场(一个牧场不一...原创 2020-02-12 14:38:33 · 146 阅读 · 0 评论 -
信使-----------------------------图论(floyd)/最短路
战争时期,前线有 n 个哨所,每个哨所可能会与其他若干个哨所之间有通信联系。信使负责在哨所之间传递信息,当然,这是要花费一定时间的(以天为单位)。指挥部设在第一个哨所。当指挥部下达一个命令后,指挥部就派出若干个信使向与指挥部相连的哨所送信。当一个哨所接到信后,这个哨所内的信使们也以同样的方式向其他哨所送信。信在一个哨所内停留的时间可以忽略不计。直至所有 n 个哨所全部接到命令后,送信才算...原创 2020-02-12 13:49:25 · 171 阅读 · 0 评论 -
热浪---------------------------------图论(SPFA)/最短路
德克萨斯纯朴的民众们这个夏天正在遭受巨大的热浪!!!他们的德克萨斯长角牛吃起来不错,可是它们并不是很擅长生产富含奶油的乳制品。农夫John此时身先士卒地承担起向德克萨斯运送大量的营养冰凉的牛奶的重任,以减轻德克萨斯人忍受酷暑的痛苦。John已经研究过可以把牛奶从威斯康星运送到德克萨斯州的路线。这些路线包括起始点和终点一共有 T 个城镇,为了方便标号为 1 到 T。除了起点和终点外的每个城...原创 2020-02-12 12:44:55 · 192 阅读 · 0 评论