随笔分类 - 图论 -- 欧拉回路
摘要:【LOJ 2162】【POI2011】Garbage(欧拉回路) 题面 "LOJ" 题解 首先有一个比较显然的结论,对于不需要修改颜色的边可以直接删掉,对于需要修改的边保留。说白点就是每条边要被访问的次数可以直接模二。证明的话就是如果一条边被经过了两次,证明其连通了两侧的两个块,那么把这两次删掉,可
阅读全文
摘要:【UOJ 389】【UNR 3】白鸽(欧拉回路,费用流) 题面 "UOJ" 题解 首先第一问就是判断是否存在一条合法的欧拉回路,这个拿度数和连通性判断一下就行了。 第二问判断转的圈数,显然我们只需要考虑顺时针过一条从源点出发的射线的次数减去逆时针过的次数就好了。 于是我们就要在欧拉回路合法的基础上算
阅读全文
摘要:【UOJ 236】[IOI2016]railroad(欧拉回路,最小生成树) 题面 "UOJ" 题解 把速度看成点,给定的路段看成边,那么现在就有了若干边,然后现在要补上若干边,以及一条使得原图存在欧拉回路,那么就变成了求从大往小连边的边长的最小值。 而欧拉回路每个点被来回覆盖的次数左
阅读全文
摘要:【CF429E】Points and Segments(欧拉回路) 题面 "CF" "洛谷" 题解 欧拉回路有这样一个性质,如果把所有点在平面内排成一行,路径看成区间的覆盖,那么每个点被从左往右的覆盖次数等于从右往左的覆盖次数。 发现这题很类似上面这个东西。 将向连边,但是不能直接做
阅读全文
摘要:【UOJ 177】欧拉回路 题面 "UOJ" 题解 首先图不连通就没啥好搞的了。 对于无向图而言,每个点度数为偶数。 对于有向图而言,每个点入度等于出度。 然后就是一本通上有的做法,直接一遍就好了。。 cpp include include using namespace std; def
阅读全文