图涂凸秃突轮论伦仑抡
文章平均质量分 53
图论问题
吃一口AC摇摇乐
这个作者很懒,什么都没留下…
展开
-
CF1272E Nearest Opposite Parity / STDOJ真简单题(反向建图最短路+超级源点)
STDOJ真简单题思路:练了半天图论,赛时愣是没看出来是个图论问题hhhhc,我真是fw。对于每一个点,如果能走到一个与他奇偶性不同的点即输出所走的次数。对于这种情况,如果我们正向建图,那就相当于对于每一个点求权值为1的最短路问题,对于这种多元最短路问题,我们就自然而然的想到了我们完美的转换方法,反向建图。反向建图之后的ans[i],代表的就是一个满足条件的点到达i点的路径,此时我们对所有的奇数点和偶数点都设置一个超级源点,对应相同奇偶性的点到这个超级源点的距离为0,而我们要求的就是每一个点到其原创 2021-08-24 22:19:53 · 169 阅读 · 0 评论 -
POJ1556 The Door(线段相交+最短路)
思路:每给出一个横坐标x都会对应三条线,首先我们将所有的线都输入并储存,每次取出两点,观察两点之间的连线是否与其他直线相交,若不相交,就将其之间的距离求出并赋值,这里不知道怎么判断的可以取我的前几篇博客里看一下。可能是叉乘的模板用错了,wa了好几发,换了一个模板就过了。数据不大,跑一遍Floyd即可。#include<iostream>#include<algorithm>#include<cstring>#include<string>#in原创 2021-08-06 22:46:07 · 95 阅读 · 0 评论 -
POJ 3259 Wormholes(bellmanFord判断负环)
题目大意:对于几条给定的道路,通过虫洞可以逆流时光,问是否存在某个点使得从这个点出发,再回到这个点时,所处的时间早于从该点出发的时间。思路:既然是多个点,我们就自然而然的想到了利用Floyd求多源最短路。。。然鹅他T掉了。。阿西吧,偷偷改了一下判断条件去掉了min改成了if评测姬抖了抖竟然过了hhhh (^ _^)实际上只需要判断是否存在负环就行啦。#include<iostream>#include<cstdio>#include<cstring>#de原创 2021-08-06 22:37:56 · 109 阅读 · 0 评论 -
POJ 3660 COW CONTEST(传递闭包)
思路:用0,1来存储两者之间的输赢关系,利用Floyd动态规划的思想,通过借助中间点来判断两者之间是否有输赢关系,并进行更改,对每个点进行查询,若与其有输赢关系的点为n个(初始化时我们默认自己与自己有输赢关系),则答案加一。在其中判断条件时我们有一点要注意,对于两点之间的输赢关系来说,a[i][j]与a[j][i]之间有一个为1即说明存在输赢关系,可以确定其所在位置,因为我们并不是要来确定他的大小位置是多少,我们只是要确定能否确定其大小位置。#define _CRT_SECURE_NO_WARNINGS原创 2021-08-06 22:28:19 · 122 阅读 · 0 评论 -
POJ3268 silver cow party(朴素dij+矩阵转置)
题目大意:给定一个点x,求每个点到这个点再回来所用时间的最大值。思路:一开始想用FloydFloydFloyd,没过。。TLETLETLE后来先对xxx求了一遍最短路,再对每一个点依次求最短路取最大值,又TLETLETLE????。这里介绍一种巧妙的方法,我们叫做矩阵转置。我们首先对xxx点求一遍最短路,由于是单向图,我们将图中的边进行交换即可,对swap(g[i][j],g[j][i])swap(g[i][j],g[j][i])swap(g[i][j],g[j][i])进行操作,就达到了置换矩阵原创 2021-08-05 20:12:51 · 120 阅读 · 0 评论 -
Acwing.342 道路与航线(堆dij + 拓扑排序)
思路:首先题目给定混合图,双向边边权皆为正值,单向边有负值但无环。看到有负值,那么我们就默认了dijkstradijkstradijkstra算法无法进行操作,但是经过spfaspfaspfa算法的尝试后,发现会被卡,所以我们需要进行进一步的思考。1.1.1.首先我们输入所有的双向边利用dfs将其形成连通块,我们将这样一个连通块称作一个团,并对其打上编号。再对每一个连通块内有那些点进行储存。2.2.2.输入单向边,并且对每一个连通块的入度进行计数。3.3.3.进行拓扑排序操作,首先将入度为000的原创 2021-08-04 16:03:59 · 126 阅读 · 0 评论 -
Codeforces Global Round 15 D. Array Differentiation(dfs)
题目大意:对于给定的数组aaa,请问是否存在一个与aaa等长的数组使得ai=bj−bka_i=b_j-b_kai=bj−bk。思路:一眼看到了数量级哈,只有10 !。天老爷哟~。接下来我们来进行简单的分析,首先对于aaa中的nnn个数,假定有三个数a1=b1−b2a_1=b_1-b_2a1=b1−b2,a2=b2−b3a_2=b_2-b_3a2=b2−b3,a3=b3−b1a_3=b_3-b_1a3=b3−b1显然我们可以得到,a1+a2+a3=0a_1+a_2+a_.原创 2021-07-27 22:06:19 · 158 阅读 · 0 评论 -
2021牛客暑期多校训练营3 black and white(最小生成树)
题目大意古德特有一个有n行m列的白色棋盘。每个格子(i,j)有一个权重c(i,j)。在任何时候,网格(i,j)都可以被染成黑色,代价是c(i,j)。古德特有一个特殊的才能。对于任意两行两列的四个相交方格,如果其中三个是黑色方格,古德特可以不计成本地将第四个方格染成黑色。请找出染黑棋盘的最低成本。由于格子的数量很多,我们用以下方法来产生权重。思路:首先我们来证明需要遍历的点数我们可以发现,当染色点所在位置经过平移可以在图中心形成一个十字时,就可以将整个图全部染色,那么也就是说,我们至少需..原创 2021-07-25 20:06:19 · 230 阅读 · 1 评论 -
340. 通信线路(分层图 / 二分 + 堆dij)
340. 通信线路二分思路:显然,我们需要找到第k+1k+1k+1大的边的权值,作为一条最短路的代价来输出。那么我们就可以对边权值的所有范围来进行二分,但是在这里我们可以看到权值的范围为111~1e61e61e6,那么000的情况存不存在?其实是可能存在的,如果当kkk的值大于我们要求的路的边数,那么我们的答案就有可能是000,也就是说000也是我们要二分的答案之一。再来分析右边界,如果说不存在一条1→N1→N1→N的联通路,那么我们的二分答案一定是1e61e61e6,但是如果有一组数据,使得我们在原创 2021-07-22 18:07:31 · 256 阅读 · 1 评论 -
P5764 [CQOI2005]新年好 (dfs + 堆优化dij)
P5764 [CQOI2005]新年好关于spfa他已经死了 …思路:对于必须到达的点,我们可以利用深搜,搜索出其排列的所有情况,其次再以每一个必达点为源点进行最短路操作分别记录下其路径距离,再依次对每种排列进行查找。但是上述方法会使得时间复杂度过高,所以,我们只需要将两步操作交换顺序,先对每一个必达点进行最短路操作,再利用dfs来找出路径最短值即可。#include<iostream>#include<algorithm>#include<cstring>原创 2021-07-22 12:55:13 · 192 阅读 · 0 评论 -
poj1062昂贵的聘礼(超级源点+朴素dij+简单建图)
poj1062昂贵的聘礼年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长去求亲。酋长要他用10000个金币作为聘礼才答应把女儿嫁给他。探险家拿不出这么多金币,便请求酋长降低要求。酋长说:"嗯,如果你能够替我弄到大祭司的皮袄,我可以只要8000金币。如果你能够弄来他的水晶球,那么只要5000金币就行了。“探险家就跑到大祭司那里,向他要求皮袄或水晶球,大祭司要他用金币来换,或者替他弄来其他的东西,他可以降低价格。探险家于是又跑到其他地方,其他人也提出了类似的要求,或者直接用金币换,原创 2021-07-21 22:26:34 · 212 阅读 · 0 评论 -
920 最优乘车(stringstream流输入 + 简单建图bfs)
HHH城是一个旅游胜地,每年都有成千上万的人前来观光。为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴士线路。每条单程巴士线路从某个巴士站出发,依次途经若干个巴士站,最终到达终点巴士站。一名旅客最近到H城旅游,他很想去S公园游玩,但如果从他所在的饭店没有一路巴士可以直接到达S公园,则他可能要先乘某一路巴士坐几站,再下来换乘同一站台的另一路巴士, 这样换乘几次后到达S公园。现在用整数1,2,…N1,2,…N1,2,…N 给HHH城的所有的巴士站编号,约定这名旅客所在原创 2021-07-21 18:21:35 · 80 阅读 · 0 评论 -
2021牛客暑期多校训练营2 I.Penguins
I.Penguins题目大意:在一个20∗4120*4120∗41的网格里有两只企鹅,一只位于(20,20)点最终要到达(1,20)点,另一只在(20,22)点最终要到达(1,22),两只企鹅在左右方向上做镜面运动,在上下方向上同上同下,如果企鹅的下一步遇到障碍或是边界,企鹅可以忽略这一步。思路:赛时调了好久没有调出来啊。。????补题又调了好久。。总而言之,思路很简单,利用bfs将整个图走一遍,将每一个点的上一个点进行保存,最后按照字典序入队即可。#include<iostream>原创 2021-07-20 14:12:35 · 149 阅读 · 0 评论 -
P1462 通往奥格瑞玛的道路(二分+spfa)
P1462 通往奥格瑞玛的道路思路:先看一下题干理解一下啊,我们要求的结果是经过的所有城市中最多的一次收取的费用的最小值是多少。,懂么?反正我不懂????????????,好吧,在仔细审题(瞪眼大法)之后,其实就是在保证主人公血量补呗扣完的情况下,所走的路上城市最多,且收取的最大的费用最小。那么我们的思路也就呼之欲出了啊,对于每个城市收取的费用进行二分答案再对没一次的二分答案进行判断,如果消耗的生命值大于我们的hp那么就返回falsefalsefalse。有两种二分的方法,首先是正常的对消费数组二分原创 2021-07-15 21:09:07 · 134 阅读 · 2 评论 -
P2648 赚钱(spfa+判断负环+超级源点)
P2648 赚钱思路:题目名字很好啊,赚钱赚钱赚钱 ,咳咳,回来回来。首先啊我们的主人公非常的牛X啊,这个啊他可以在每个城市挣到钱,而且呢挣完了就可以跑路????。那么说,我们可以将每条初始的路的权值都看做ddd,将可以进行飞行的路呢看做负值,首先我们要考虑这个什么时候输出orzorzorz啊,那么这时候如果形成正环,我们这个挣的钱呢那肯定是停不下来。那这个时候他肯定是要输出orzorzorz的。那么除此之外,我们要考虑如何遍历这张图,首先我们可以用一个超级源点,这个操作非常的经典啊,大家记好笔记原创 2021-07-13 21:45:05 · 215 阅读 · 1 评论 -
P6175 无向图的最小环问题 (Floyd判断最小环)
P6175 无向图的最小环问题加粗样式原创 2021-07-13 18:06:35 · 887 阅读 · 0 评论 -
P5651 基础最短路练习题(bfs + 思维)
P5651 基础最短路练习题思路:题目中给出定义一条简单路径的权值为路径上所有边边权的异或和,那么我们首先要得出一个结论 xxx xorxorxor xxx === 000 也就是说,我们再求路径权值时假设有a1a_1a1a2a_2a2a3a_3a3a4a_4a4a5a_5a5a6a_6a6和边w1w_1w1w2w_2w2w3w_3w3w4w_4w4w5w_5w5举个例子a1a_1a1到a4a_4a4点和到a6a_6a6距离就是圈起来的就是异或…所以a4a _4a原创 2021-07-13 11:31:44 · 302 阅读 · 0 评论 -
Floyd(一)
P2910 [USACO08OPEN]Clear And Present Danger S(Floyd多源最短路)一道裸 FloydFloydFloyd题目意思很简单啊(别人翻译过就是爽),首先数据的范围很小只有100,Floyd的话100的三次方没有问题,输入岛屿范围时,我们先将其存起来,再将数据依次输入Floyd跑一遍即可。#include<iostream>#include<algorithm>#include<cstring>#include<原创 2021-07-12 17:53:45 · 83 阅读 · 0 评论 -
K. King‘s Task(dfs)
K. King’s Task题目大意:给定一个序列,要求对其进行两种操作,使得最后将它变为有序。操作一:交换第2k2k2k个数和第2k−12k-12k−1个数。操作二:交换第kkk个数和第k+nk+nk+n个数。思路:数据范围只有1000,而且时间给了三秒,我们可以用深搜来做,利用一个vectorvectorvector来存储序列,并对其进行变换,利用firstfirstfirst值为vectorvectorvector的mapmapmap来判断此序列是否出现过,更新答案即可。#inclu原创 2021-06-01 10:50:14 · 247 阅读 · 0 评论 -
P1119 灾后重建(Floyd算法优化)
P1119 灾后重建(Floyd算法优化)本题是一道Floyd算法的应用。Floyd算法是基于动态规划方程的推导而来,利用每一个合理的中间点来实现对两点之间距离的更新,具体的状态表达方程为:其中还有一些细节需要注意,本题给出了每一个村庄重建的时间,而这就需要我们额外注意,如果我们每次进行Floyd算法求询问中的两点最短路径那么时间复杂度就为O(q * n^3),显然已经超过了我们的所给时间,而事实也是这样,只能得50分,tle了5个点。那么我们就需要对Floyd算法进行一些简单的优化,由于题干原创 2021-05-03 20:41:20 · 846 阅读 · 0 评论