zoukankan      html  css  js  c++  java
  • CF1494F

    题外话

    貌似我是第二个A此题的人/se/se

    题意

    给定(n)个点(m)条边的连通无向图,你可以任选一点开始游戏,游戏有两个阶段,第一个阶段在经过一条边后这条边消失,第二阶段在经过的第二条边、第四条边、...消失
    从第一阶段开始,可以任意时刻开启第二阶段,注意:第二阶段无法返回第一阶段
    要求使得所有边均消失,输出方案
    (n,mle 3000)

    简要阐述

    由于我还不会证明此做法的正确性,暂且说一说简略步骤,等官方题解出了再补个证明

    单独考虑第一阶段,显然是走了个欧拉路径(回路)
    单独考虑第二阶段,是走了一个菊花图,除菊花图外无法使任意图的边全部消失

    考虑不经历第二阶段,那么对全图求个欧拉路径(回路)
    考虑经过第二阶段,枚举一个点(t),作为欧拉路径(回路)的终点,判断除其邻点外是否有点度数为奇数

    • 若仅有一个,令其为(s),将(t)的邻点度数为奇数的提出来构成菊花图,然后对((s,t))为起点与终点跑欧拉路径
    • 若没有,枚举(t)的一个度数为奇数的邻点(s)作为欧拉路径的起点,其他度数为奇数的提出来构成菊花图,然后对((s,t))为起点与终点跑欧拉路径

    做法

    题解出了,证明其实也挺简单的

    结论:第二阶段,为一个菊花图。

    证明:
    考虑路径的最后一条边必定删除,假设我们的方向为(v ightarrow u)
    那么回溯这条边,现在处于(v)点,仅剩边((u,v)),那么再往前倒一步,必定是(u ightarrow v)
    回溯后现在处于(u)点,仅剩边((u,v)),考虑上一步会是(? ightarrow u),然后删除了边((?,u))
    不断回溯,复原出来的图始终为菊花图。

  • 相关阅读:
    测试工具知识大集合
    滴滴,好未来,百度,快手,头条测试&测试开发岗面经(附面试题)
    做数据必知的十本书,你读过几本?
    如何有效延长假期?
    当程序猿第那几年!
    自动化测试中的那些误解和偏见
    北京VS上海:“活着为了工作”还是“工作为了生活”?
    程序员国庆相亲图鉴
    有赞精准测试实践
    IE中的文档兼容性
  • 原文地址:https://www.cnblogs.com/Grice/p/14472484.html
Copyright © 2011-2022 走看看