ACM-UVA
TouchDreamer
这个作者很懒,什么都没留下…
展开
-
UVA 10054 The Necklace(欧拉路)
题目分析 这道题题目意思是让你用珠子组成一条项链,其实已经比较直接的给你边了,并且项链的头尾是一样的,所以就相当于让你找图中是否存在欧拉回路。关于欧拉回路其实就是判断所有点的入度和出度是否是偶数,如果是则存在,如果不是则不存在。同样输出的时候注意逆序输出。 #include <cstdio> #include <cstring> #include <iostream> #include <alg原创 2017-03-19 13:43:01 · 361 阅读 · 0 评论 -
UVALive - 5135 Mining Your Own Business(双联通分量)
题目分析 这道题让你求至少需要装多少个escape shafts,并且在满足最少的escape shafts情况下有多少种选择方案。 这样我们就可以对本图求双联通分量,如果如果这个连通分量有2个以及以上割点那么这个连通分量不需要escape shafts,如果只有一个联通分量,那么可以选择一个非割点的escape shafts,那么可以选择的方案数有该连通分量的结点数减1。对于整个图都是一原创 2017-04-07 19:13:58 · 281 阅读 · 0 评论 -
UVALive 4255 Guess(前缀和+拓扑排序)
题目分析 这道题又考研了一些构图的能力,表示自己在这方面就是一个智障。将s[i][j]转化为sum[j] - sum[i-1],这里sum数组表示前缀和,然后找到前缀和的大小关系然后构图。然后拓扑排序求得结果。 #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm原创 2017-03-30 20:46:58 · 422 阅读 · 0 评论 -
UVALive 4287 Proving Equivalences(强连通分量)
题目分析 这道题就是求一个图如果转化为一个强连通图,那么我们首先强连通缩点,然后整个图变成一个有向无环图,然后我们又知道强连通图所有节点的入度和出度都不为0,因此我们只需要求缩点之后的图的入度为0的点和出度为0的点的最大值即可。 #include <stack> #include <vector> #include <cstdio> #include <cstring> #include <io原创 2017-04-12 19:26:09 · 258 阅读 · 0 评论 -
UVA 11324 The Largest Clique(强连通缩点+记忆化搜索)
题目分析 这道题的意思就是让你找一条路上最长的路径,使得该路上的所有节点均可以达到,注意要么u到达v,或者v到达u。于是我们可以强连通缩点,然后这个图形就转化为一个DAG(有向无环图),然后记忆化搜索一些即可。 #include <queue> #include <stack> #include <vector> #include <cstdio> #include <cstring> #inc原创 2017-04-12 21:08:02 · 238 阅读 · 0 评论 -
UVALive - 3523 Knights of the Round Table(双联通分量)
题目分析 这道题是白书上的一道原题,但是思路很巧妙,如果没看分析我做不出来。这里我说一下自己的理解。因为互相讨厌的其实不能坐在圆桌上的相邻位置,那么很明显我们可以在不互相憎恨的骑士中间建立边,这样就转化为了求不在任何一个奇圈上的结点个数。 奇圈上的所有结点必然属于同一个双联通分量,因此第一步是找双联通分量。又因为二分图没有奇圈,因此我们只需要关注不是二部图的双联通分量。 又因为不是二部图所原创 2017-04-05 20:01:26 · 296 阅读 · 0 评论 -
UVa 563 - Crimewave
题目分析 因为每个点有限制,很容易想到拆点,然后求最大流判断是否等于b即可。现在已经很容易手打ISAP网络流算法了。。 #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int maxn = 1e5+10原创 2017-06-24 11:59:02 · 320 阅读 · 0 评论 -
UVA 11374 Airport Express(最短路+枚举)
题目分析 我们可以从S出发算法最短路,然后从E出发算出最短路,然后枚举每一条特殊通道即可。输出可能有些麻烦。 #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int maxn = 1e4+100; co原创 2017-07-17 23:00:20 · 284 阅读 · 0 评论