
uva
FrostMonarch
这个作者很懒,什么都没留下…
展开
-
UVA 10765 Doves and Bombs(tarjan找桥)
题目大意:给你一个图,我们需要找出去掉任意一个点后连通分量的个数。解题思路:tarjan算法可以快速地在O(n)时间内找到所有的割点,但是这个算法不能告诉我们这个是割点同时去掉这个割点后有多少个连通分量。难道我们又要退化为O(n^2)找割点联通分量,这题这样做理论上来说应该会TLE,奈何数据太水。这里给一个正确的做法。其实我们在判断tarjan割点的时候有两个很重要的变量,df...原创 2019-11-13 21:23:22 · 161 阅读 · 0 评论 -
uva 253 Cube painting(图的同构)
题目大意:对两个骰子染三种颜色,问我们是否可以通过对某个骰子进行旋转得到另一个骰子。解题思路:网上大多都是模拟暴力的过程,这里我给出另一种解决思路。其实骰子我们可以建为一个图。每一个面作为一个节点,每个节点之间的连接我们连一条边。现在问题等价于转换为求两个图的同构。同构是什么意思呢?我们可以对每个节点进行标号,我们找到两个图中的点的一一对应关系,之后我们证明按照这样一一对应后,这两个图...原创 2019-10-11 12:16:27 · 297 阅读 · 1 评论 -
UVA 314 Robot (BFS)
题目大意:有一个机器人走迷宫,每次可以走一格或者三格,然后中间有一些障碍不能走,这些障碍会挡住机器人。题解:无权图最短路径,优先考虑BFS,在这里我们知道,这个题目有一个关键的hints就是每个格子能走4个方向(分别对应机器人的四个朝向),为什么要区分能走4个方向,而不是平时的BFS只能走一次呢?因为这里的机器人不同朝向时,往下一步走的cost不一样!同一个方向走到某一格(r,c)的时...原创 2019-07-13 17:39:56 · 218 阅读 · 0 评论 -
UVA 10048 (Kruskal 的应用 解决 bottleneck 问题)
题目大意:给你一幅图,图中的边带权,问你怎么找到图中两点u,v的一条路径,使得这条路径中权值最大的边是在所有uv路径中权值最大的边权值最小。有点绕,简单来说就是符合以下的一条公式约束其中uv代表点u v之间的所有路径,i表示路径中的一条边。解题思路:首先我们可以用kruskal得到MST,然后u 和 v之间存在的路径即为最优路径,然后我们遍历一遍路径就可以了,输出路径中的最大权...原创 2019-06-15 18:33:41 · 251 阅读 · 0 评论 -
UVA 11228 (Kruskal 最小生成树)
题目大意:有一系列的点,这些点中假如欧氏距离小于r就认为是同一类,注意A和B同一类,B和C同一类,那么A和C就是同一类。现在要在点集中铺路,在一类中我们需要铺路使得类中的点都连通,在不同类也需要通过路来把它们全部连起来,使得类和类之间能够互相连接。约束:注意我们总的铺路的距离要尽可能小。最后输出铺路的距离。思路:首先在类中最小生成树,然后不同类之间也要做一个最小生成树,注意在不同类别中...原创 2019-06-14 19:59:53 · 164 阅读 · 0 评论 -
UVA 1595 (stl map vector)
题目大意:已知有一系列的点的(x,y),问我们能不能找出一个x=a的直线使得所有点关于这条线对称。各位大佬都说是水题,555.但是我觉得这道题让我对stl中的map有了更深的理解,以及让我对这种问题思考多了一些角度。首先,我们应该意识到有几个变量是这个问题的关键突破,点的横坐标,点的纵坐标,和点到这条对称轴的距离。首先我们看点的纵坐标,假如点需要对称,那么我们是不是应该统计出所...原创 2019-06-13 15:50:42 · 190 阅读 · 0 评论 -
uva 11790(DP 权值递增串)
参考:https://blog.youkuaiyun.com/mobius_strip/article/details/40264311题目大意:有两个串,分别为A,B。我们最终要找到B中的子串求和,这个子串必须在A中是递增的,同时这个子串和必须是最大的。和我们做过的最长递增子串参不多,只不过我们需要把dp表换一下,这次的dp表存放的是,A递增串中最大的求和值(和的元素来源于B就是了)。AC代...原创 2019-05-28 10:39:42 · 118 阅读 · 0 评论 -
uva 11831(ad hoc 模拟)
题意:有一个棋盘,然后有一个机器人在上面走,我们需要根据指令命令这个机器人。思路:明明很简单的一题,结果,理解错题意写的异常臃肿(其实就是多了几个vector插入)。:(只要维护两个变量,分别是机器人的位置和机器人的朝向,然后建坐标系的时候注意一下,不要走错方向了就行。AC代码:#include <bits/stdc++.h>#define MAXR 200#de...原创 2019-05-30 16:41:42 · 167 阅读 · 0 评论 -
uva 10337(non classical DP)
题目大意:有一个二维图,每次只能往右上,右下,直接往右走,而且每次走的时候有一个cost。另外每走到一个小格也有cost,问已知起点,应该怎么走去终点cost最小。DP问题,我们可以列出转移方程。for ii -1:1dp[i][j] = min(dp[i][j], dp[i+1][j+ii])另外注意出边界,或者走不到目的地我们认为是不允许的,所以返回inf,使得本次转移无效。...原创 2019-05-30 10:04:39 · 182 阅读 · 0 评论 -
uva 11456( DP 最长递增子串 最长递减子串)
参考:https://blog.youkuaiyun.com/keshuai19940722/article/details/21021449题解:首先我们需要把这车队的次序(即车来的次序)翻转过来,假若不翻转直接从左开始找最长递增子串和最长递减子串是没有意义的。而翻转过来后,从左开始找的递增串和递减串是可以拼接起来成为最长串的。编程新手,代码辣眼睛。代码:#include <iostre...原创 2019-05-20 20:51:37 · 346 阅读 · 0 评论