首页 > 其他分享 >CF1404B. Tree Tag

CF1404B. Tree Tag

时间:2024-11-23 14:55:04浏览次数:2  
标签:CF1404B Tree Alice da leq Tag text 顶点 Bob

1405D - 树标记

让我们独立地考虑几个情况。

情况1:$ \text{dist}(a, b) \leq da $

不出所料,在这种情况下,Alice 在第一步就通过标记 Bob 获胜。

情况2:$ 2da \geq \text{树的直径} $

在这里,树的直径被定义为最长简单路径的长度。

在这种情况下,Alice 可以移动到树的中心。一旦 Alice 在那里,无论 Bob 在哪里,Alice 都可以在树中只用一步到达任何顶点,从而赢得比赛。

情况3:$ db > 2da $

在这种情况下,让我们描述一个 Bob 获胜的策略。因为我们不在情况1中,Bob 在他的第一步之前不会输掉比赛。那么,足以证明 Bob 总是可以在与 Alice 的距离大于 $ da $ 的情况下结束他的回合。

由于我们不在情况2中,至少有一个与 Alice 距离至少为 $ da $ 的顶点。如果 Bob 在他回合开始时位于这样的顶点,他应该简单地留在那里。否则,有某个顶点 $ v $ 满足 $ \text{dist}(a, v) = da + 1 $。那么 $ \text{dist}(b, v) \leq \text{dist}(b, a) + \text{dist}(a, v) \leq da + (da + 1) = 2da + 1 \leq db $,所以 Bob 可以在他的回合中跳到 $ v $。

情况4:$ db \leq 2da $

在这种情况下,Alice 的策略将是尽可能捕捉 Bob 或者移动一个顶点以靠近 Bob。让我们证明 Alice 将在有限的移动次数内获胜。

让我们将树的根设为 $ a $。Bob 位于 $ a $ 的某个子树中,假设有 $ k $ 个顶点。Alice 每次移动一个顶点,减少 Bob 的子树大小至少一个顶点。由于 $ db \leq 2da $,Bob 不能移动到另一个子树而不被立即捕获,所以 Bob 必须留在这个不断缩小的子树中,直到他不可避免地被击败。

解决方案

实现中唯一非平凡的部分是检查情况1和2。情况1 只需通过 DFS 检查。情况2 只需计算树的直径,这是一个标准问题。

复杂度是 $ O(n) $。

标签:CF1404B,Tree,Alice,da,leq,Tag,text,顶点,Bob
From: https://www.cnblogs.com/gutongxing/p/18564455

相关文章

  • esp32 JTAG 串口 bootload升级
    文章目录一、前言二、了解JTAG和Ymodem的工作原理2.1环境准备**2.2Ymodem协议工作原理**2.3固件分区准备三、关键升级函数五、使用shell测试一、前言如果使用JTAG串口结合Ymodem协议实现ESP32的固件升级,整体逻辑将围绕通过串口传输固件文件并将其......
  • 在Instagram上如何实现低成本引流?
    在当前的数字营销环境中,Instagram已成为品牌和个人最强大的营销平台之一。然而,对于中小企业和个人创作者来说,高额的广告费用和推广成本可能成为引流的难题。如何在有限的预算下,利用Instagram进行有效的引流?本文将介绍几个简单而实用的技巧,帮助你在低成本的前提下,最大化Instagr......
  • 最小生成树(Minimum Spanning Tree,MST)初步
    定义连通图的最小生成树(MinimumSpanningTree,MST)为边权和最小的生成树。注意:只有连通图才有生成树,而对于非连通图,只存在生成森林。思路分为Kruskal与Prim两种算法。Kruskal从最小边权的边开始,按边权从小到大依次遍历。若当前边连接的两点不连通,加入此边。Prim每次选......
  • Winform控件基础与进阶----DataGridView
    Winform控件基础之封装一个通用的DataGridView操作类1、创建Winform项目2、创建公共控件操作文件夹3、主界面1、控件布局2、提取通用方法3、静态方法类实现4、其他工具类实现1、JsonHelper工具类实现2、TxtOperateHelper工具类实现5、数据模型实现1、创建表结构模型2......
  • AntDesign树形组件tree和输入input组件融合使用
    <a-tree :tree-data="selectItem.options.options" :replace-fields="{ children:'children', title:'label', code:'code' }" >......
  • Map集合中的具体子类TreeMap
    一、TreeMap元素是一个键值对,可以去重并进行排序1.先编写一个Dog2类publicclassDog2{privateStringname;privateintage;publicDog2(){}publicDog2(Stringname,intage){this.name=name;......
  • Java中的Iterator接口,以及HashSet和TreeSet
    在Java编程中,`Iterator`接口是一个非常重要的概念,它为我们提供了一种统一且方便的方式来遍历集合(如`List`、`Set`、`Map`等数据结构中的元素,不过遍历`Map`时稍显特殊,通常是遍历其键值对的集合视图)。##一、Iterator接口的定义与方法`Iterator`接口位于`java.util`包中,它定义......
  • ORB-SLAM2 ---- ORBextractor::ComputeKeyPointsOctTree
    文章目录一、函数作用二、源码及注释三、函数的讲解1.遍历金字塔的每一层,将其分成30*30的网格单元,并给每一层添加图像边界2.遍历每个单元格,提取特征点3.调用DistributeOctTree()函数分配特征点4.计算所有保留下来的特征点的方向信息一、函数作用ORB-SLAM2----......
  • DATAGERRY REST API身份验证绕过漏洞(CVE-2024-46627)
    0X01产品描述:        ‌DATAGERRY是一个灵活的开源CMDB和资产管理工具,它完全将数据模型的定义留给用户。‌用户只需在一个易于使用的webfrontend中定义自己的对象类型(如服务器、路由器、租赁线路、位置等)。通过DATAGERRY的导出API,存储在DATAGERRY中的CMDB对象可以轻......
  • The 2023 ICPC Asia Hangzhou Regional Contest (The 2nd Universal Cup. Stage 22: H
    The2023ICPCAsiaHangzhouRegionalContest(The2ndUniversalCup.Stage22:Hangzhou)M.V-Diagram题意:给定一个“v图”,求平均值最大的子"v图"思路:原图的最低点以及左右两个点必须取,如何先取满左边或者右边在贪心即可voidsolve(){lln;cin>>n;vect......