CF1494F Delete The Edges
如果不用mode shift的话,就是让你判断原图的欧拉回路的存在性。
经典问题,我忘了。
不想学习,撤退。
不过为什么要纠结这个变得陌生的名词呢,从概念上来说应该是一个自然的概念,也许不知道有欧拉回路这个词的存在更好。
唯一值得恐惧的是恐惧本身。
最简单的图就是环,绕着走一圈就是回路。
环基树,不可以。
环套环,可以。
至少把一个环中间再加一条边,就不是欧拉回路。
边不重的环的并才构成欧拉回路。
想去学欧拉回路,但是无形的手攥紧了我的脖子,如果是全新的东西倒也还好,明明是被遗忘的东西,却最抗拒重学。WTM还能对我的心理说啥
看了oi-wiki上对欧拉回路的介绍,感觉求欧拉回路很简单,每次找一个顶点未被访问过的边进入,然后找另外一条未被访问过的边退出,当所有边都走完的时候,你一定回到了起点,走过的边的序列就是欧拉回路。所以题目就转化为如果原图不是欧拉图,就得开启mode shift,怎么判断mode shift模式下能否删完所有边?
第偶数次访问的边会被删除,所以如果是偶数边的环的话,第一次绕环中的第奇数次边在下一次依然是第奇数次边,不会被删除,所以NO。
奇数边的环,如果我们不是删边而仅仅是给边打标记的话,也就是说标记后的边下次还能走,那么奇数边的环就是YES。
但实际上,边是被删除的,下一次连通性就被破坏了。
「题目就转化为如果原图不是欧拉图,就得开启mode shift」意识到这句话有问题,我们可以先执行普通模式,然后中途改到mode shift,不一定要一开始就模式二选一。
但是还是先考虑一开始就mode shift的好了。
看了题解,发现我对题目的理解就不正确,这是个无向图,并且你move的时候可以从a走到b,也一步也可以反向从b走到a,但是下一步具有删除的效果,于是(a,b)边就被删除了。
从最后一步开始考虑是个明智的选择,此时只剩下一条边等待删除,那么只能用上述的方式删,进一步后退,可以发现我们始终从a前进到某个b然后再退回a,因此mode shift下删除的边构成的是以a为中心的星图。
所以就等价于判断原图是否可以视为一个欧拉路,并在某个点上加上一些边。
如果我们把每个度为1的点都缩进其「父亲」点中,并且把该「父亲」点标记,那么我们就是要找一条以标记点为终点的欧拉路。(或者当成起点,反正是无向图)

浙公网安备 33010602011771号