zoukankan      html  css  js  c++  java
  • AT3968 [AGC025E] Walking on a Tree

    题解

    你考虑任选一个叶子节点,我们考虑其和其父亲相连的边。

    1. 如果说没有路径经过这一条边,那么直接删去这个叶子节点并没有什么影响。
    2. 如果说经过其的路径个数为 (1) ,那么这条路径的方向必然两个都可以,将答案加一后将该点删去即可。
    3. 如果说经过其的路径个数为 (2) ,那么我们可以从中随机选取两条路径,让他们的方向相反。由于两条路径可以分为三个部分:公共部分、第一条的一部分、第二条的一部分。可以知道,公共部分的答案必定为 (2) ,我们可以直接更新删点;然后对于非公共部分的两部分,可以发现他们是连续的,同时方向也是连续的,所以可以把他们直接合成一条链继续计算。

    按照这样的方案执行即可。但是感觉代码过于繁琐,就没有写了,写一下题解加深印象。

  • 相关阅读:
    Animation用法
    英文口语及书写常用句型汇总1
    Jqplot使用总结之二(双Y轴)
    SqlServer扩展存储过程
    SQL Server常见基础操作
    C# 利用ITextSharp导出PDF文件
    go常量
    ARP协议
    go数组
    go基本数据类型
  • 原文地址:https://www.cnblogs.com/Point-King/p/14242821.html
Copyright © 2011-2022 走看看