首页 > 其他分享 >ZJOI2019 语言

ZJOI2019 语言

时间:2023-09-25 18:44:36浏览次数:37  
标签:语言 线段 路径 DFS 修改 端点 ZJOI2019

Day 0001 0101。

考虑对每个点 \(u\) 计算贡献,求出所有经过它的路径的两个端点,包含这些点的最小连通块大小就是以 \(u\) 为端点的 \((u,v)\) 答案数对的个数。

根据经典结论,对于 \(m\) 个点的点集 \(u_1,u_2,\cdots ,u_m\),钦定 \(u_0=u_m\) 且根据 DFS 序排序,则以任意点为根,包含它的最小连通块大小为 \(\sum\limits_{i=1}^md_{u_i}-d_{\text{lca}(u_i,u_{i-1})}\)。\(d_u\) 为 \(u\) 的深度。

发现如果知道所有经过 \(u\) 的路径的端点,再插入一条经过 \(u\) 的路径,\(u\) 的贡献也是容易通过在 DFS 序上建立线段树动态维护的。于是相当于 \(m\) 次链修改,每次修改在 \(u,v\) 之间的路径上的线段树插入点 \(u\) 和 \(v\)。

树上差分一下,变成单点修改。然后父亲节点的线段树需要从子节点继承而来,线段树合并即可。

使用 DFS 序求 LCA,复杂度 \(O(n\log n)\)。

标签:语言,线段,路径,DFS,修改,端点,ZJOI2019
From: https://www.cnblogs.com/Ender32k/p/17728600.html

相关文章

  • Redis之Lua语言入门
    前言Redis通过lua脚本来支持多条语句的原子性。Linux下安装#下载压缩包curl-R-Ohttp://www.lua.org/ftp/lua-5.4.3.tar.gz#解压tar-zxvflua-5.4.3.tar.gz#进入解压目录cdlua-5.4.3#编译makelinuxtest#安装,此步骤也可以省略makeinstall运行my......
  • C语言统计数组里面各个元素出现的次数
    #include<iostream>#include<stdio.h>intmain(){intnums[]={1,1,2,2,3,4,5,6,6};intsize=sizeof(nums)/sizeof(nums[0]);//创建一个全0的空数组int*counterNums=(int*)calloc(size,sizeof(int));for(inti=......
  • 火山引擎DataLeap推出两款大模型应用: 对话式检索与开发 打破代码语言屏障
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 自上世50年代,以“计算机”作为代表性象征的信息革命开始,社会对于先进生产力的认知便开始逐步更迭——从信息化(通常认为是把企业中的信息资源与信息技术有机结合,从而提高企业的管理水......
  • 【C语言菜鸟知识】——动态内存管理
    --------------------------------------------------------------------------------------------------------------------- 1、栈在全局变量是分配在内存中的静态储存区,非静态的局部变量是分配在内存中的动态储存区,这个储存区就是栈的区域。2、堆在内存中允许建立内存动态分......
  • 安卓逆向 -- 入门Smali语言
    在Android应用程序逆向工程和安全研究中,了解Smali语言是非常重要的。Smali是一种用于Android应用程序的反汇编和反编译的语言,允许您分析、修改和定制应用程序的行为。本博客将带您深入了解Smali语言的基础知识和技术,同时提供一些实际的代码案例。一、什么是Smali语言?Smali是一种基......
  • C语言动态内存分配
      #include<iostream>#include<stdio.h>int*removeDuplicates(intnumsSize){//malloc是常用的动态内存分配int*arr=(int*)malloc(numsSize*sizeof(int));returnarr;}intmain(){intnumsSize=10;int*arr;a......
  • R语言使用Metropolis-Hastings采样算法自适应贝叶斯估计与可视化|附代码数据
    原文链接:http://tecdat.cn/?p=19889原文出处:拓端数据部落公众号 最近我们被客户要求撰写关于Metropolis-Hastings采样的研究报告,包括一些图形和统计输出。如果您可以写出模型的似然函数,则 Metropolis-Hastings算法可以负责其余部分(即MCMC)。我写了r代码来简化对任意模型的后......
  • R语言逻辑回归、决策树、随机森林、神经网络预测患者心脏病数据混淆矩阵可视化
    全文链接:https://tecdat.cn/?p=33760原文出处:拓端数据部落公众号概述:众所周知,心脏疾病是目前全球最主要的死因。开发一个能够预测患者心脏疾病存在的计算系统将显著降低死亡率并大幅降低医疗保健成本。机器学习在全球许多领域中被广泛应用,尤其在医疗行业中越来越受欢迎。机器......
  • R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归|附代码数据
    全文链接:http://tecdat.cn/?p=11617最近我们被客户要求撰写关于blockGibbs吉布斯采样的研究报告,包括一些图形和统计输出。在这篇文章中,我将对多元线性回归使用block的Gibbs采样,得出block的Gibbs采样所需的条件后验分布。然后,对采样器进行编码,并使用模拟数据对其进行测试 ( 点......
  • R语言Gibbs抽样的贝叶斯简单线性回归仿真分析|附代码数据
    全文下载链接:http://tecdat.cn/?p=4612最近我们被客户要求撰写关于贝叶斯简单线性回归的研究报告,包括一些图形和统计输出。贝叶斯分析的许多介绍都使用了相对简单的教学实例(例如,根据伯努利数据给出成功概率的推理)。虽然这很好地介绍了贝叶斯原理,但是这些原则的扩展并不是直截了......