
图论
风中之神111
我亦飘零久
展开
-
有趣的赛车比赛uva12661最短路
题意:有n个城市,m条边,问你从城市s到tt的总时间。每条路都有开放时间和关闭时间,还给出了你通过那条路的时间,你必须在那条路开放的时间内通过那条路,不然的话就只能等待那条再次开放然后通过,开关的计时是在从城市s出发开始的。思路:算出当前时间,路径距离关闭还剩下的时间,如果大于t,那么可以通过,否则,只能等到下一次。如果下一次也不能通过,即t>a,输入的时候忽略这些边。求耗费时有点...原创 2019-06-01 16:24:46 · 205 阅读 · 0 评论 -
Uva1670王国的道路图
题意:给定一棵树,然后让你加入尽量少的边,使得整张图不存在割边。思路:上来一看就把叶子节点挨个直接连起来了。这样是不对的,因为可能会陷入某一个子树。如图红色线连的就是错的,这样会陷入子树中,而当其父节点与割边相连是,剪断割边就不连通了 。所以要子树要与外界连通,方法时,找一个度大于1的点作为根,dfs寻找,每当找足3个叶子时,把左右两边的连在一起,中间剩下等待下一轮3个。最后可能会剩下0...原创 2019-06-24 21:06:54 · 332 阅读 · 0 评论 -
Uva1668绿色行动——思维
####题意:给定一棵有 n 个节点的树,每条边有边权 w(u,v),用最少的路径覆盖所有的边,使得每条边被覆盖的次数等于其边权。####思路:最坏情况是每条边都单独覆盖w次。逐个合并。#include <cstdio>#include <queue>#include <vector>#include <cstring>#includ...原创 2019-06-24 19:31:36 · 324 阅读 · 0 评论 -
Uva1669交换房子——思维
原文:https://blog.youkuaiyun.com/aozil_yang/article/details/61926727题意:给你一棵包括n 个结点的树,每个结点上住着一个人,每个人都要换房子,但不能有两个人 住在同一个房子,求的所有人的最大路程长度?思路:成都2011年区域赛的题目:感觉正解好巧妙:最优解肯定是让每一个边尽量走更多次数。那么我们只需要算一下每个边 走的最大次数是多少...转载 2019-06-24 18:05:49 · 339 阅读 · 0 评论 -
Uva1667NetworkMess——建树
题意:有一颗n个叶子的无权树,输入两两叶子的距离,恢复出这棵树并输出每个非叶子节点的度数。思路:参考:https://blog.youkuaiyun.com/zju2016/article/details/78450509无根树,现将一个叶子节点作为根。逐个探测剩下的叶子节点,并在这个过程中不断增加内部节点以满足其距离要求,最终建树完成。内部节点 j 的选择:逐步测试是否能够找到某个内部的节点,...原创 2019-06-22 20:37:52 · 629 阅读 · 0 评论 -
Uva1665岛屿——并查集
题意:输入一个n*m矩阵,每个格子都有一个正整数,再输入T个整数ti,对于每个ti,输出大于ti的正整数组成多少个四连块。思路:首先想到的就是枚举处理每个ti,对每个ti而言,问题都是一个求多少个连通块,可以用并查集。#include <cstdio>#include <queue>#include <vector>#include <cst...原创 2019-06-20 22:29:24 · 388 阅读 · 0 评论 -
Uva1666最短路线——技巧
题意:平面上右n个建筑物,求(x1,y1)到(x2,y2)的一条路,使得转弯次数最少。建筑物都是坐标平行于坐标轴的矩形。可以相互接触但不重叠(接触的点或边都不可通过),只能沿着平行于坐标轴的直线走,可以沿着建筑物的边走,但不可穿越建筑物。思路:lx,ly对应建筑的左下角,rx,ry对应右上角首先明白一点,对于建筑A和建筑B,若A.rx < B.lx,那么A和B之间必定有路可走,和A和...原创 2019-06-20 22:15:55 · 481 阅读 · 0 评论 -
Uva12549机器人警卫----二分图最大匹配
题意:在一个Y行X列的网格里有空地(.),重要位置(*)和障碍物(#),用最少的机器人看守所有重要位置,每个机器人要放在一个格子里,面朝上下左右4个方向之一。机器人会发出激光,一直射到障碍物为止,沿途都是看守范围。思路:每个点就是把x,y连在一起,选取最少点覆盖所有的x,y,那么就是个二分图匹配,左边是x,右边是y。有障碍物,所以需要拆点,重新赋值行和列,每碰见一个障碍物,就将后面的所有东西...原创 2019-06-16 19:02:08 · 349 阅读 · 0 评论 -
Uva1664占领新区域——并查集
题意:n个城市形成一棵树,每条边有权值C(i,j)。任意两个点的容量S(i,j)定义为i与j唯一通路上容量的最小值。找一个点,使得它到其他所有点的容量之和最大。思路:图是一个树形 结构,意味着切断一条边(中间的)可以使图分成两个树。而中心点必然在某一个树中,所以可以用合并法。初始假设所有点都是中心点,他们都其他点的的距离W[i]= 0,每个中心点所覆盖的点集中个数为1(他自己)。如果点a和...原创 2019-06-18 20:32:50 · 264 阅读 · 0 评论 -
uva1279星际游击队——动点最小生成树
题意:有n个匀速动点,求最小生成树的改变次数思路:。。。没有思路看题解,应该算是一道思维题。动态问题的一般做法是先求出一个静态的解,然后求出解可能发生改变的事件,事件按照时间排序,依次处理。首先什么时候最小生成树(MST)会变化呢?先求出最开始的最小生成树(MST),当MST中的某条线段v长度被不在MST的线段u取代的时候,最小生成树才会发生变化,切换一定是树内一条边和树外一条边,构...原创 2019-06-02 18:46:23 · 306 阅读 · 0 评论 -
uva10735混合图的欧拉回路_最大流
题意:混合图的欧拉回路,存在的话输出路径,不存在输出提示信息。思路:回忆概念:如果图G中的一个路径包括每个边恰好一次,则该路径称为欧拉路径(Euler path)。如果一个回路是欧拉路径,则称为欧拉回路(Euler circuit)。无向图存在欧拉回路的充要条件一个无向图存在欧拉回路,当且仅当该图所有顶点度数都为偶数,且该图是连通图。有向图存在欧拉回路的充要条件一...原创 2019-06-02 13:58:45 · 393 阅读 · 0 评论 -
uva1001奶酪里的老鼠-最短路
题意:给出一些球,球内的时间为零,球之间的速度为10每单位。给两个点,求最短时间。思路:所有点看做洞,起点和终点可以看做r=0的洞,洞到洞的最短距离都是圆心距离减去半径(>=0)。剩下的就是dijdstra了。// 最短路 #include <cstdio>#include <queue>#include <cmath>#include...原创 2019-06-07 11:37:37 · 477 阅读 · 0 评论 -
uva821网页跳跃
题意:求所有点直接的平均最短距离思路:对每个点编号,然后Floyd,统计// Floyd算法 #include <cstdio>#include <map>#include <cmath>#include <cstring>#include <algorithm>#define fi first#define se ...原创 2019-06-07 11:34:11 · 227 阅读 · 0 评论 -
Uva10801电梯换乘-最短路
题意:有一层不超过100层的大楼, 有n个电梯,它们的速度都不同。 而且每个电梯只能到达指定的那些楼层,而且它们都有各自的速度(即上升一层或下降一层所用的时间)。 如果一个人在某层走出电梯,要换一个电梯乘,那么他要等60秒(不管要等的是那个电梯,即使是刚刚出来的那个电梯也要等60秒)。在0层搭电梯出发时不需要等待。一个人从0层开始,目的地是k层, 现在要搭这些电梯,问最少需多少时间。思路:...原创 2019-06-13 12:26:57 · 243 阅读 · 0 评论 -
Uva12214TrafficJam
知识点:求点M(x,y)逆时针旋转后求坐标值(x1,y1)。设点M在原坐标系中的坐标为(x,y),对应向量的模为r,幅角为.将坐标轴绕坐标原点,按照逆时针方向旋转角形成新坐标系,点M在新坐标系中的坐标为,则所以,按照逆时针方向旋转后的坐标是:...原创 2019-06-30 15:54:42 · 410 阅读 · 0 评论