首页 > 其他分享 >Freezing with Style

Freezing with Style

时间:2023-08-08 10:56:08浏览次数:62  
标签:Style 子树 复杂度 路径 Freezing 中位数

CF150E Freezing with Style

题意

给定一颗带边权的树,求一条边数在 \([L,R]\) 之间的路径,并使得路径上边权的中位数最大。输出一条可行路径的两个端点。

注:此处 \(1,2,3,4\) 的中位数为 \(3\) ,而非 \(2\) 或者 \(2.5\) 。

题解

首先用中位数惯用套路二分,将 小于 \(mid\) 的设为 \(-1\),大于等于 \(mid\) 的设为 \(1\) 。

一条路径满足条件当且仅当路径和非负。

首先这是一个路径统计问题,用点分治。

注意到有一个路径长度 \([L,R]\) 的限制,多加一维用线段树,即可做到 \(O(nlog^3n)\),过不了。

这里有一个比较新的方法,用单调队列来解决这个问题。

我们处理完一个子树之后得到一个数组 \(f_i\) 表示当前子树深度为 \(i\) 的链前缀最大值。
我们用 \(g_i\) 表示前面子树为 \(i\) 的链前缀最大值。
处理完一个子树之后我们要枚举深度 \(j\),询问 \([L-j,R-j]\) 中 \(g_i\) 的最大值拼上去。
显然 \([L-j,R-j]\) 是一个滑动窗口状的东西,每次操作最坏都是前面的子树最深的深度
如果直接这样做的话,会被叉成 \(O(n^2)\) 。

有一个显而易见又很神奇的操作来优化这个东西。
对于一个中转点我们将其子树按照最深的点排序,依次处理。
容易发现每次滑动窗口操作的时间复杂度不会超过当前子树的深度。
注意到做了一个排序,点分治中每个点只会成为一次中转点,所以排序的总数是边数级别的。
所以点分治一次的时间复杂度仍是 \(O(nlogn)\),总时间复杂度 \(O(nlog^2n)\),code

...

据说是经典技巧,但是我没见过,还是太菜了/kk

标签:Style,子树,复杂度,路径,Freezing,中位数
From: https://www.cnblogs.com/snow-panther/p/17613588.html

相关文章

  • [论文阅读] Neural Transformation Fields for Arbitrary-Styled Font Generation
    Pretitle:NeuralTransformationFieldsforArbitrary-StyledFontGenerationaccepted:CVPR2023paper:https://openaccess.thecvf.com/content/CVPR2023/html/Fu_Neural_Transformation_Fields_for_Arbitrary-Styled_Font_Generation_CVPR_2023_paper.htmlcode:htt......
  • vue通过style切换背景图片,出现闪屏现象
    1.情况:通过监控swiper的index修改背景图片,出现闪屏情况 2.解决:尝试过多种方法例如v-clock,提前定义路径变量等都无法解决问题,最终使用提前定义好类名,通过修改类名动态更改类解决,在浏览器网络中可发现只请求过一次,不再是滑动时每次重新请求图片,因此不会出现闪屏现象 ......
  • 语音合成技术3:HierVST: Hierarchical Adaptive Zero-shot Voice Style Transfer
    HierVST:分层自适应零样本语音风格转换摘要:尽管语音风格转换(VST)领域取得了快速进展,但最近的零样本VST系统仍然缺乏将新的说话者的语音风格进行转换的能力。在本文中,我们提出了HierVST,这是一个分层自适应的端到端零样本VST模型。在没有任何文本转录的情况下,我们仅利用语音数据集......
  • 为react项目添加开发/提交规范(前端工程化、eslint、prettier、husky、commitlint、sty
    因历史遗留原因,接手的项目没有代码提醒/格式化,包括eslint、pretttier,也没有commit提交校验,如husky、commitlint、stylelint,与其期待自己或者同事的代码写得完美无缺,不如通过一些工具来进行规范和约束。eslinteslint是一个代码校验工具,用来规范项目代码风格。初始化通过n......
  • python coding style guide 的快速落地实践——业内python 编码风格就pep8和谷歌可以
    pythoncodingstyleguide的快速落地实践机器和人各有所长,如codingstyle检查这种可自动化的工作理应交给机器去完成,故发此文帮助你在几分钟内实现codingstyle的自动检查。1.有哪些著名的PythonCodingStyleGuidePEP8https://www.python.org/dev/peps/pep-0008/发明Python语言......
  • vue 动态绑定style class
    绑定style<!--基本使用--><div:style="{color:activeColor,fontSize:fontSize+'px'}">基本使用</div><!--数组--><div:style="styleArr">123</div><div:style="[astyle,bStyle]"&g......
  • 工具 – ESLint, Stylelint, Prettier
    前言以前在 Webpack学习笔记 有稍微介绍过它们。这篇是单独整理版。 简单介绍ESLint是JS/TS代码检查器。它用于保证代码质量,通过2个方式1.统一格式(formating)比如是使用singlequote还是使用doublequote?2.codequality比如functiondeclare了一个pa......
  • vite-plugin-style-import styleImport和createStyleImportPlugin
    当vite-plugin-style-import安装版本为2.0.0时,只能使用createStyleImportPlugin,取消了styleImport。如下1//vite.config.ts2import{createStyleImportPlugin,AndDesignVueResolve}from'vite-plugin-style-import';34plugins:[5vue(),6createStyleImp......
  • 动态创建style标签 写入样式
    //从字符串初始化documentconstparser=newDOMParser()constparseDocument=parser.parseFromString(this.editorText,'text/html')//动态创建style标签写入样式conststyle=parseDocument.createElement('style')sty......
  • Delphi12支持全屏显示启动界面的styles.xml
    <resourcesxmlns:android="http://schemas.android.com/apk/res/android"><stylename="AppTheme"parent="@android:style/Theme.Material.Light.NoActionBar"><itemname="android:navigationBarColor&qu......