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))
    不断回溯,复原出来的图始终为菊花图。

  • 相关阅读:
    onload事件addLoadEvent函数
    Struts 2读书笔记Struts 2知识总结
    oraclehttp://localhost:5560/isqlplus 打不开的解决方案
    Struts 2读书笔记拦截器之示例:使用拦截器完成权限控制
    使用定时器实现弹弹球
    Servlet过滤器大全
    java面试大全
    sql学习笔记
    java学习笔记
    JSP快速入门教程——全十讲
  • 原文地址:https://www.cnblogs.com/Grice/p/14472484.html
Copyright © 2011-2022 走看看