首页 > 其他分享 >ATcoder368D题详解

ATcoder368D题详解

时间:2024-08-25 11:36:41浏览次数:7  
标签:遍历 复杂度 doge 保存 详解 ATcoder368D 节点

D题传送门

一道很无脑的题,但考试没写出来

爆搜

首先看朴素算法

1.从根节点开始遍历每个节点

2.遇到要保存的节点就进行标记,直到所有保存节点都标记

时间复杂度 \(O(n)\)

其实已经能过了,但我没用(doge)

树链剖分(LCA)

首先分析

1.每一次砍掉枝叶,都是在没有要保存的节点存在子树上时

2.因此,我们可以将每一个要保存的节点进行求最近公共祖先

3.最后对每个节点进行向上遍历,判断是否有要保存的节点在其子树上

4.如果有就保存,没有就删去其子树的数量

考虑最坏情况每个节点都遍历,时间复杂度\(O(n log(n))\)

一般情况下时间复杂度是比爆搜要快的,也快不到哪去

代码
(doge)

标签:遍历,复杂度,doge,保存,详解,ATcoder368D,节点
From: https://www.cnblogs.com/scxyyds/p/18378765

相关文章

  • Java线程池详解
    Java线程池解析在Java中有两种方式创建线程池,一种是直接使用Executors工具类创建预先定义好的线程池。一共有以下四种线程池newCachedThreadPool:可缓存的无边界的线程池,最大线程数Integer.MAX_VALUEpublicstaticExecutorServicenewCachedThreadPool(){returnnewTh......
  • OSPF路由原理详解与关键点
    目录一. OSPF简介:二. OSPF原理描述:三.  OSPF的核心内容: 四. OSPF的邻居关系和邻接五.LSA在各区域中传播的支持情况一. OSPF简介:开放式最短路径优先OSPF(OpenShortestPathFirst)是IETF组织开发的一个基于链路状态的内部网关协议(InteriorGatewayProt......
  • idea--pom文件坐标下载失败怎么办(史上最强详解)
            我们平常的项目实现,最基本也是第一个操作那肯定是在我们的pom文件里,写坐标下载坐标。但我们有时候进常会出现:坐标标红、坐标写的没有任何问题但就是下载不成功,又或是坐标写的没有问题,下载也显示ok,但我们再加入注解或者导包时却显示没有这个包。这里我整理了一......
  • 【Material-UI】Radio Group中的 Size 属性详解
    文章目录一、RadioGroup组件概述1.组件介绍2.基本用法二、Size属性详解1.`Size`属性的作用2.使用`Size`属性调整尺寸3.自定义SVG图标的大小三、Size属性的实际应用场景1.在密集布局中的应用2.强调选项的重要性3.与其他组件的结合使用四、注意事项1.......
  • 【C语言】进程和线程详解
    目录C语言进程和线程详解1.进程和线程的对比2.进程的基本概念2.1进程的定义2.2进程的特点2.3进程的生命周期3.进程管理3.1进程创建3.2进程间通信(IPC)3.2.1管道(Pipe)4.线程的基本概念4.1线程的定义4.2线程的特点5.POSIX线程库5.1引用头文件5.2创建线程......
  • C语言指针详解
    指针的概念:1.指针就是个变量,用来存放地址,地址唯一标识一块内存空间。2.指针的大小是固定的4/8个字节(32位平台/64位平台)。3.指针是有类型,指针的类型决定了指针的+-整数的步长,指针解引用操作的时候的权限。4.指针的运算1.字符指针在指针的类型中我们知道有一种指针类型......
  • [JavaEE] 工作流- Activiti7 框架详解
    目录1、Activiti介绍1.1、BPMN设计器1.2、常见流程符号1.2.1、事件event1.2.2、活动activiti1.2.3、流向flow2、入门案例2.1、需求说明2.2、初始环境2.2.1、添加依赖2.2.2、添加配置2.2.3、添加引导类2.2.4、启动项目2.2.5、表结构2.2.6、常见api2.3、绘制流......
  • 黑神话悟空 PC端配置需求详解:如何为不同游戏体验选择合适的配置?
    《黑神话:悟空》是一款备受期待的动作角色扮演游戏,由游戏科学(GameScience)开发,基于《西游记》改编。随着游戏的发布,许多玩家都在关心一件事:我的电脑能带动这款游戏吗?本文将详细介绍《黑神话:悟空》的最低配置和终极体验配置,并探讨不同配置的选择理由。最低配置需求:1080p中等画质......
  • java字符串基础详解
    字符串的输入用Scanner类的方法 nextLine()。关键代码如下:Stringss;Scannersc=newScanner(System.in);ss=sc.nextLine();字符串中字符的获取方法(1):用ss.charAt(k)获取字符串ss中索引号为k的字符。(字符串中首字符的索引号为0)Stringss="Hello,world!";/......
  • Redis 数据类型详解
    Redis是一个开源的内存数据结构存储系统,广泛应用于缓存、消息队列、实时数据分析等场景。Redis提供了多种数据类型,本文将详细介绍Redis的五种主要数据类型及其应用场景,并从概述、基本操作、应用场景和数据结构等方面进行深入探讨。1.字符串(String)概述字符串是Redis......