题解
题解
三寸雪
这个作者很懒,什么都没留下…
展开
-
[kuangbin带你飞]专题一 做题顺序与题解 【简单搜索】
随便说点:博主正在刷kuangbin专题的题目,初学者,没接触过什么算法,刷题的初衷是备战蓝桥杯,后来发现了算法资料大多是针对acm的,挑选kuangbin专题入门也是如此,毕竟这样分类看起来比较有目的的刷题。所以有的代码比较冗余,越往后面的题解代码变化越大,代码的风格和算法思想也是在一步步的学习和进步,多多包容,互相借鉴。建议做题顺序:11 2 12 3 1 8 13 6 14 ...原创 2020-02-23 17:34:02 · 7858 阅读 · 5 评论 -
[kuangbin带你飞]专题四 做题顺序与题解 【最短路练习】
随便说点:博主正在刷kuangbin专题的题目,初学者,没接触过什么算法,刷题的初衷是备战蓝桥杯,后来发现了算法资料大多是针对acm的,挑选kuangbin专题入门也是如此,毕竟这样分类看起来能达到比较有目的的刷题。所以有的代码比较冗余,越往后面的题解代码变化越大,代码的风格和算法思想也是在一步步的学习和进步,多多包容,互相借鉴。建议做题顺序:dijk: 1 7 4 10 3 2 1...原创 2020-02-23 18:04:09 · 5643 阅读 · 2 评论 -
[kuangbin带你飞]专题五 做题顺序与题解 【并查集】
随便说点:博主正在刷kuangbin专题的题目,初学者,没接触过什么算法,刷题的初衷是备战蓝桥杯,后来发现了算法资料大多是针对acm的,挑选kuangbin专题入门也是如此,毕竟这样分类看起来比较有目的的刷题。所以有的代码比较冗余,越往后面的题解代码变化越大,代码的风格和算法思想也是在一步步的学习和进步,多多包容,互相借鉴。建议做题顺序:并查集模板题:2 3 1并查集应用:12 1...原创 2020-02-23 18:51:16 · 2947 阅读 · 1 评论 -
[kuangbin带你飞]专题六 做题顺序与题解 【最小生成树】
随便说点:博主正在刷kuangbin专题的题目,初学者,没接触过什么算法,刷题的初衷是备战蓝桥杯,后来发现了算法资料大多是针对acm的,挑选kuangbin专题入门也是如此,毕竟这样分类看起来比较有目的的刷题。所以有的代码比较冗余,越往后面的题解代码变化越大,代码的风格和算法思想也是在一步步的学习和进步,多多包容,互相借鉴。建议做题顺序:做最小生成树专题没最短路和并查集专题时那么吃力...原创 2020-02-23 19:24:33 · 3557 阅读 · 1 评论 -
ZOJ 3261 Connections in Galaxy War 【逆向并查集】
ZOJ 3261 Connections in Galaxy War题目链接:vjudge传送门题目大意:一共有N个星球,每个星球有一定的power值,两个星球之间可以建立联系,当某个星球寻求帮助时,是向与它有直接或间接联系的星球中且power值最大的星球寻求帮助,如果两个星球之间的联系被destory,则这两个星球将失去直接联系,只可能存在间接联系。具体思路:完全想不到,还可以离线逆向...原创 2020-02-21 02:24:11 · 460 阅读 · 0 评论 -
POJ 1984 Navigation Nightmare【带权并查集 二维】
POJ 1984 Navigation Nightmare题目链接: vjudge传送门题目大意:依次给定二维坐标轴上的若干点的相对坐标,问在指定的前i次数据前,能否得到两点之间的距离(横纵坐标之差的绝对值之和)。具体思路:并查集,用两个权值数组hori[],vert[],分别维护水平方向和垂直方向上相对于根节点的相对距离,然后对每问两点的距离进行建树和输出。如果是一次query就建图一...原创 2020-02-21 00:39:32 · 329 阅读 · 0 评论 -
POJ 2912 Rochambeau 【枚举+带权并查集】
POJ 2912 Rochambeau题目链接:vjudge传送门题目大意:给定n个孩子,编号[0,n),以及m组两人剪刀石头布的结果,n个人中有一个孩子是裁判,剩余的人被分成3组,通一组人出同一个手势,裁判也参与见到石头布游戏,只不过有它的那组结果是随机给的(即正确与否不保证),问能否判断出哪个孩子是裁判,若可以求出最少需要前多少条语句可以判断出。具体思路:带权并查集,权值数组的维护与...原创 2020-02-19 19:38:34 · 367 阅读 · 0 评论 -
HDU 1272 小希的迷宫 【并查集+判无向无环连通图】
HDU 1272 小希的迷宫题目链接:vjudge传送门具体思路:做过Is It A Tree后就知道,这题比它简单点,只需要把判断入度的条件去掉,感兴趣的这里是题解这题具体是用并查集维护新加入一条边时,判断两点是否同一集合是,则构成有环图,不满足否,则将两点加入同一集合中最后判断一下是否是空图(满足),或者非连通图(不满足),即可具体代码:#include<iostre...原创 2020-02-19 16:58:27 · 410 阅读 · 4 评论 -
POJ 1308 Is It A Tree?【判断树 并查集】
POJ 1308 Is It A Tree?题目链接:vjudge传送门题目大意:给定若干条有向边,判断所给的所有边是否能组成一颗树(包含空树)具体思路:离散数学图论知识,只有一个结点入度为0,其它结点入度均为1的图是树,保存每个点的入度,最后判断即可也可按树的定义来,用并查集来维护新加入的边,被指向的结点必须是并查集中的祖先结点(排除入度大于1和环的情况),加入完后把两点合并处理...原创 2020-02-19 16:08:15 · 373 阅读 · 0 评论 -
poj 2492 A Bug's Life【带权并查集】
poj 2492 A Bug’s Life题目链接:vjudge传送门题目大意:给定n个编号过的bug,以及m对数a,b 表示两个bug之间可以交配,问从给定的数据中能否判断出存在同性的bug也可以交配具体思路:此题与poj 1733类似,增加数组对性别关系进行维护,通过异或实现具体代码:#include<iostream>#include<algorithm&g...原创 2020-02-17 18:35:06 · 342 阅读 · 0 评论 -
POJ 1733 Parity game【带权并查集+离散化处理】
POJ 1733 Parity game题目大意:按顺序给定若干描述:区间l到r中1的个数是奇数个(偶数个)。问:从哪一条开始,下一条与前面的相违,错误了。若全是对的,则输出描述条数。具体思路:这题与HDU 3080很相似,思路是一样的,只是路径压缩的时对权值的处理不一样,这里需要用异或来实现。附上该题题解:How many answers are wrong不同的是这里的n是1e9...原创 2020-02-17 00:48:47 · 389 阅读 · 0 评论 -
POJ 1456 Supermarket【贪心+并查集优化】
POJ 1456 Supermarket题目大意:给你 N 件不同的商品,每件商品最多可以买一次。每件物品对应两个值 pi dipi 表示物品的价值,di 表示可以买的最迟时间(也就是第一天到第 di 天都可以买这件物品)每天最多可以买一件物品,问你可以得到的最大价值。具体思路:kuangbin的题解,用并查集实现了链表搜索的O(1)时间复杂度,Orz原文:这里其实用贪心做...原创 2020-02-16 21:56:14 · 387 阅读 · 0 评论 -
POJ 1182 食物链 【带权并查集 (种类并查集)】
HDU 3038 How Many Answers Are Wrong比较经典的带权并查集,能让你真正理解带权并查集:诠释是这样的:在对并查集进行路径压缩和合并操作时,这些权值具有一定属性,即可将他们与父节点的关系,变化为与所在树的根结点关系。也就是说,权值代表着当前节点与父节点的某种关系(即使路径压缩了也是这样),通过两者关系,也可以将同一棵树下两个节点的关系表示出来。具体思路:话不...原创 2020-02-16 18:44:56 · 391 阅读 · 0 评论 -
HDU 3038 How Many Answers Are Wrong【带权并查集】
HDU 3038 How Many Answers Are Wrong原题链接: vjudge传送门题目大意:有N个数,不知道它们具体的值,但是知道某两个数之间(包括这两个数)的所有数之和,给出M个区间即区间和,需要判断有多少个区间和与前边已知的区间和存在矛盾。例如给出区间和[1,5]为30,[3,5]为15,再给出[1,3]为20,显然[1,3]的值应该为30-15=15,故该答案错误...原创 2020-02-13 17:18:40 · 469 阅读 · 0 评论 -
HDU 1213 How Many Tables【并查集基础】
HDU 1213 How Many Tables原题链接:vjudge传送门题目大意:给定n个人,m组关系(两人之间),关系可以传递,问总最终共有几组关系eg:若a和b有关系,b和c有关系,则a,b,c都有关系,且为同一组关系具体思路:并查集具体代码:#include<iostream>#include<cstdio>#include<algori...原创 2020-02-13 14:20:10 · 289 阅读 · 0 评论 -
POJ 1611 The Suspects 【并查集基础】
POJ 1611 The Suspects题目大意:有n个人,m个社团,有一种病毒具有传染性,假设一个人可能感染,那么它所属社团的所有人都可能感染,假设0号这个人疑似感染了病毒,问总共有多少人可能感染病毒具体思路:并查集模板题具体代码:#include<iostream>#include<cstdio>#include<algorithm>u...原创 2020-02-13 13:57:41 · 464 阅读 · 3 评论 -
POJ 2246 Wireless Network 【并查集 基础题】
POJ 2246 Wireless Network题目链接:vjudge传送门题目大意:给定N个坏掉的电脑以及坐标,规定通信距离为L,对每个电脑进行两个操作,维修或测试两个电脑是否可以通信,给定若干个操作,判断其中的测试操作是否成功具体思路:对于O操作,每修理一个电脑就检测该电脑与所有被检测过的电脑之间能否通信,可以就把两个电脑加入同一个集合中对于S操作,判断两台电脑是否在都修理过且...原创 2020-02-13 13:03:29 · 484 阅读 · 2 评论 -
POJ 3169 Layout【差分约束+spfa判负环】
POJ 3169 Layout题目大意:在一个一维坐标轴上排列各个点,使得每两个点直接满足给定的两种条件某两点间的距离不大于某个值,以及某两点距离不小于某个值具体思路:差分约束,最短路求解不懂差分约束的,可以参考这篇博客https://blog.csdn.net/whereisherofrom/article/details/78922648差分约束的条件:假设标号A<B...原创 2020-02-13 00:59:43 · 381 阅读 · 0 评论 -
HDU 4370 0 or 1 【spfa求正环花费+矩阵思维转换】
HDU 4370 0 or 1题目链接:vjudge传送门题目大意:其实理解了题目的深层意思,思路基本上就有了,就是把邻居矩阵和图相结合。给定一个n维矩阵A,求一个n维矩阵B(矩阵元素为1或0),使得两个矩阵对应位置上的元素相乘的和最小。求和(Aij xBij),结果最小。其中B矩阵需要满足以下三条:X12+X13+…X1n=1 //代表1号点出度为0X1n+X2n+…Xn-1...原创 2020-02-12 17:52:53 · 481 阅读 · 3 评论 -
HDU 4725 The Shortest Path in Nya Graph 【dijkstra+堆+分层建图】
HDU 4725 The Shortest Path in Nya Graph题目链接:vjudge传送门题目大意:给定n个点(编号1到n),以及每个点处于的层数(1到n),一个点有一条边通向上/下相邻层的所有点的边,权值为c,另外有额外m条边,记录n个点中任意两点之间带权的边,问从1点出发到n点的最短距离。具体思路:处于相邻层的不同层上的点都有一条权值为c的双向边,因此可以每两层中的各...原创 2020-02-12 15:20:25 · 554 阅读 · 0 评论 -
Light OJ 1074 Extended Traffic 【spfa+dfs标记负环及相连点】
Light OJ 1074 Extended Traffic题目链接:vjudge传送门题目大意:有n个城市,每一个城市有一个拥挤度Ai,从一个城市I到另一个城市J的时间为:(Av−Au)3。问从第一个城市到达第k个城市所花的时间,如果不能到达,或者时间小于3输出?否则输出所花的时间。具体思路:因为有负权并且可能存在负环,故spfa求最短路并标记负环,假设存在一个负环,那么负环上的每个点...原创 2020-02-12 02:18:15 · 337 阅读 · 0 评论 -
POJ 1847 Tram 【最短路spfa 模板题】
POJ 1847 Tram原题链接:vjudge传送门题目大意:给定n个路口,每个路口通向多条路,默认通向第一条路,若想通向该路口的任何一条路,需要拨动一次开关,问给定路口A,B,从A出发到B最少需要拨动多少次开关。例:3 2 1 三个路口,从2到1号路口最少要拨动多少次开关2 2 3 1号路口,通向两条路,默认通向2号路口的路,还有通向3号路口的路(需拨动一次开关)2 3 1 2号...原创 2020-02-11 21:31:45 · 467 阅读 · 1 评论 -
POJ 1062 昂贵的聘礼【最短路spfa+建图】
POJ 1062 昂贵的聘礼题目链接:vjudge传送门具体思路:思路来源:https://xiaoxiaoh.blog.csdn.net/article/details/104198067可以先抛开等级制度的限制,把问题抽象成求最短路的问题把每个物品当成一个点(依次编号1-n),把探险家当成一个超级源点(编号为0),初始化这个超级源点到各个点的权值为得到它们所需要的金币,若物品A=物品...原创 2020-02-11 02:39:36 · 431 阅读 · 1 评论 -
POJ 2502 Subway【spfa模板+建图】
POJ 2502 Subway题目链接: vjudge传送门题目大意:给定学校和家的坐标,以及若干条地铁线途经的地铁站坐标,步行速度以及地铁速度,问从家到学校所花最少时间具体思路:最短路的模板题,难的是建图要建立,家、学校以及每个地铁站之间的步行时间,同一线路相邻地铁站之间的行驶时间,并记录各点的标号具体代码:#include<iostream>#include<...原创 2020-02-09 19:01:43 · 453 阅读 · 0 评论 -
POJ 3159 Candies 【差分约束系统 dijkstra+heap/spfa+stack】
POJ 3159 Candies题目链接:vjudge传送门题目大意:给n个人分糖果,m组数据a,b,c;意思是a比b少的糖果个数绝对不超过c个,也就是d(b)-d(a) < c,求1比n少的糖果数的最大值。具体思路:差分约束系统第一次接触,我也不太懂,见博客据说spfa+queue会超时,看好多人都用spfa+stack优化【第一次知道能用stack优化,但是我仍不知两者的差别...原创 2020-02-09 16:15:43 · 430 阅读 · 1 评论 -
POJ 1511 Invitation Cards 【dijkstra + 堆优化】
POJ 1511 Invitation Cards原题链接:vjudge传送门题目大意:求1号点到各个点的最短距离,以及各个点到1号点的最短距离,相加即可。题目保证是连通图具体思路:图中所有点到指定点的最短距离可以转化为求指定点到所有点的最短距离因此用正反向存图+2次Dijkstra,数据量很大,用堆优化随便说点:做这道题我真的体会到链式前向星的好处,一开始用vector前向星存...原创 2020-02-08 23:39:45 · 575 阅读 · 0 评论 -
POJ 2240 Arbitrage 【Floyd判正环+自环坑】
POJ 2240 Arbitrage题目链接:vjudge传送门题目大意:给定货币种数及各自名称,及其给定某两种货币之间的转化比率(相乘即可)问是否存在一种货币套现的方法,即有某种货币,经过货币之间的转换使得,其数额是原来的i倍,i>1具体思路:不得不说,这题真是垃圾题。坑人先说一下思路,判断正环的问题,因为不是单一源点,所以不选择spfa,而选用用floyd判断正环状态转移...原创 2020-02-08 15:01:07 · 459 阅读 · 1 评论 -
POJ 3660 Cow Contest【传递闭包 Floyd变形】
POJ 3660 Cow Contest题目链接:vjudge传送门题目大意:给定n个数,并且给定m组任意两个数之间的关系,例如4个数,a>b,d>c,b>c,若将四个数的大小排序,能确定排名的有几数具体思路:若一个数能确定有多少个数大于它,以及多少个数小于他,那么就可以确定该数的排名因此可以建立正、反向图,求出每个数的出度和入度,最后相加判断总度是否为n-1,是则...原创 2020-02-08 01:36:28 · 397 阅读 · 1 评论 -
POJ 1502 MPI Maelstrom 【dijkstra模板题】
POJ 1502 MPI Maelstrom原题链接:传送门题目大意:实验室有很多台计算机,计算机之间发送信息的速度不同,所以花费时间不同(正反向时间相同)。消息从第一台电脑发送到第二台电脑后,这两台电脑能再向其他电脑发送消息我们的计算机允许同时向连接到它的任意数量的其他计算机发送消息。然而,消息有可能不能到达目的地,用字符x表示从1号计算机出一个消息,至少要等多久全部的人才可以都收...原创 2020-02-07 19:55:58 · 640 阅读 · 0 评论 -
POJ 3259 Wormholes 【Floyd判断负环】
POJ 3259 Wormholes 【Floyd判断负环】题目大意:FJ 有 N 块田野【编号 1…n】田野间有 M 条路【双向】同时有 W 个虫洞,通过这个虫洞到达另一个田野,可以回到一段时间以前【单向】问:FJ 是否能在田地中遇到以前的自己具体思路:双向路为正权,单向路为负权,判断图中是否存在负环,存在则可以遇到以前的自己,至于为什么上一篇博客有解释可用spfa求解,但是spf...原创 2020-02-07 18:29:46 · 793 阅读 · 0 评论 -
POJ 1860 Currency Exchange 【spfa判断正环】
POJ 1860 Currency Exchange 【spfa判断正环】原题链接:传送门题目大意:给出几种货币以及它们正向反向兑换的汇率和手续费,求给定一种货币以及金额,问能否经过若干次货币兑换后回到原给定的货币种类,若能实现金额数增加则输入YES,否则输出NO具体思路:最短路变形,spfa求解,若换到某种货币金额数大于该种货币原有金额则更新,若发现某条边更新了超过n次,说明存在正...原创 2020-02-07 13:48:25 · 463 阅读 · 0 评论 -
POJ 2387 Til the Cows Come Home【dijkstra模板题】
POJ 2387 Til the Cows Come Home题目大意:无向图中,从点n到点1的最短路径具体思路:dijkstra,考虑重边注意下标减1,建议下次还是不使用0号,便于理解具体代码:#include<iostream>#include<cstdio>#include<stdlib.h>#include<string>...原创 2020-02-06 19:53:58 · 755 阅读 · 0 评论 -
POJ 3268 Silver Cow Party 【反向dijkstra】
POJ 3268 Silver Cow Party题目大意:每个农场有一只奶牛,所有奶牛都要去指定的一个农场X中聚会,聚会结束后各自回自己的农场,求所有的奶牛出门参加聚会再回到家中的最短用时,即求出耗时最长的奶牛的时间具体思路:最短路求解,先求x到各个农场的时间,再将各边反向,再求一次x到各个农场的时间。将两个时间相加,最小的时间即为所求(求图中所有点到指定点的最短距离可以转化为求指...原创 2020-02-06 19:43:41 · 673 阅读 · 0 评论 -
POJ 1797 Heavy Transportation【改写最短路】
POJ 1797 Heavy Transportation题目大意:存在图中1到n号点的路径,求多条路径中最小权值最大的一条,输出最大的最小权值具体思路:改写最短路解法或者最大生成树(把权值变为负数,直接用最小生成树算法,结果取绝对值)详细思路可见这篇博客POJ2253,它是求最小的最大权值。下方代码为改写最短路具体代码:#include<iostream>#incl...原创 2020-02-06 16:55:41 · 743 阅读 · 0 评论 -
POJ 2386 Lake Counting
POJ 2386 Lake CountingDescriptionDue to recent rains, water has pooled in various places in Farmer John’s field, which is represented by a rectangle of N x M (1 <= N <= 100; 1 <= M <= 10...原创 2020-02-04 19:40:36 · 162 阅读 · 0 评论 -
POJ 3984 迷宫问题 bfs+回溯
poj 3984 迷宫问题Description定义一个二维数组:int maze[5][5] = {0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, 1, 1, 1, 0,0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线...原创 2020-02-04 16:50:32 · 1068 阅读 · 0 评论 -
POJ 3414 Pots
poj 3414 PotsDescriptionYou are given two pots, having the volume of A and B liters respectively. The following operations can be performed:FILL(i) fill the pot i (1 ≤ i ≤ 2) from the tap;D...原创 2020-02-04 16:24:43 · 807 阅读 · 2 评论 -
POJ 1312 棋盘问题
poj 1312 棋盘问题Description在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input输入含有多组测试数据。每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目...原创 2020-02-04 15:57:27 · 1115 阅读 · 0 评论 -
POJ 2251 Dungeon Master
Dungeon MasterDescriptionYou are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed of unit cubes which may or may not be filled with rock. It takes one minute to...原创 2020-02-04 15:40:46 · 699 阅读 · 0 评论 -
POJ 2253 Frogger【最小生成树 or 最短路】
POJ 2253 Frogger题目大意:湖中有n块石头,编号从1到n,有两只青蛙,A在1号石头上,B在2号石头上,A想跳着去找她。但是B的石头超出了他的跳跃范围。因此,A使用其他石头作为中间站,通过一系列的小跳跃到达她。青蛙从一块石头跳到另一块石头(中间可经过其它石头)的过程中跳最远的那次距离定义为青蛙距离你的工作是计算从1号石头跳到2号石头之间的所有可能路径中最小的青蛙距离。具...原创 2020-02-06 03:05:27 · 1137 阅读 · 1 评论