![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
文章平均质量分 74
以负熵为食
此人很懒,什么也没有留下
展开
-
UVA1151BuyOrBuild
每组用例用完vector一定要清理!!!由于是对少量方案的枚举,本题用到了装态压缩,确实简化了代码。原创 2017-08-16 11:58:40 · 224 阅读 · 0 评论 -
UVA1349OptimalBusRouteDesign
由于构造的是具有不重叠元素的环,可得性质:出度=入度=1;因此我们据此拆点(将一个点的出度和入度分开),并试图建立完美二分匹配。注意,用流量是否小于n来判断是否能够构成符合要求的圈。注意,模板的移植要准确无误!!原创 2017-08-27 16:19:48 · 204 阅读 · 0 评论 -
UVA1658Admiral
本题是一道网络流建模的题。其中对于拆点法的运用,体现出了对于点的遍历限制的技巧。为了实现拆点法并遍历两组不同的路线(除了始末位置),我们通过在算法中限制流量为2来完成(重要技巧!!)原创 2017-08-27 14:49:15 · 211 阅读 · 0 评论 -
UVA11082MatrixDecompressing
本题的求解实质上是在检测做题者对于最大流的理解深度。从横行转移数值到纵行,其实也是二分图的带权匹配问题。不过还需要回顾解法。原创 2017-08-26 22:42:13 · 183 阅读 · 0 评论 -
UVA1395SlimSpan
本题用到了借用了Kruskal算法和并查集的实现方法。关键在于对边权值的排列和枚举。原创 2017-08-16 09:27:39 · 194 阅读 · 0 评论 -
UVA12219CommonSubexpressionElimination
所有的表达式建树,都要依照原题中树的特点来建立。比如本题,每一个表达式是由字符串+括号,或仅含字符串组成,所以我们依此进行建树,先处理标记字符串,再根据有无括号去建立左右子树。巧妙之处在于两点:1.是对一个子树进行收集(map)2.是利用一个指针,在递归时不失顺序进行遍历问题在于:map的结构体映射竟然要定义先后顺序。。。突然想起来,这也是一种二分查找树。。。。看来得先好好学习C++了。原创 2017-08-15 22:09:00 · 169 阅读 · 0 评论 -
UVA753APlugForUNIX
//UVA753APlugForUNIX#include<cstdio>#include<cstring>#include<string>#include<map>#include<vector>#include<iostream>#include<queue>using namespace st...原创 2017-08-19 16:31:02 · 166 阅读 · 0 评论 -
UVA658It'sNotABug,It'sAFeature!
本题有一点十分坑,至今不太明白。可能是由于memset初始化的量太大,导致提交上去的编译就没有通过。。。。原创 2017-08-19 15:30:18 · 306 阅读 · 0 评论 -
UVA10048Audiophobia
印证了一句话:比赛比的是对于算法的理解深度。这道题是Floyd算法的变形,然而我没有反应过来,说明理解不够深入,需要重新看看推导过程,加深理解!!!原创 2017-08-16 21:37:56 · 170 阅读 · 0 评论 -
UVA247CallingCircles
一道通过Floyd算法查找强连通分量的题。打印分量的时候,别忘了我们还有专攻遍历连通图的bfs!!!原创 2017-08-16 18:41:23 · 164 阅读 · 0 评论 -
UVA12661FunnyCarRacing
本题是一道具有额外限制的最短路问题,可用Dijkstra算法求解。遇到的问题如下:1.在写Edge结构体的构造函数时,忘记初始化open的值,导致在vector<Edge> edges 中加边时,open的值写不进去(但别的值可以成功写入,查看后发现open的值是一个随机的大数)2.忘记用vis数组进行标号,并在每次队列出来已经被访问的单元时,进行continue操作。debug~~~~~原创 2017-08-28 11:11:02 · 206 阅读 · 0 评论