首页 > 其他分享 >P3761 [TJOI2017] 城市

P3761 [TJOI2017] 城市

时间:2023-09-26 09:04:57浏览次数:43  
标签:城市 删掉 我们 P3761 TJOI2017 端点 考虑 中点 直径

原题

这题其实是有 \(O(n)\) 的解法的


我们考虑枚举删掉边的中间点,把树分成两个部分

然后对两棵树求直径中点,让删掉的边连接两个树的中点即可

最终复杂度 \(O(n^2)\)

如果通过加一条边操作让直径最小,则我们考虑把两棵树的中点相连


然后我们考虑 \(O(n)\) 的解法

首先,我们删的边一定在原树的直径上,否则删完边后不会对直径产生影响

因此我们考虑枚举直径上删哪条边,然后还是两遍 \(dfs\) 暴力找直径

我们再考虑优化,我们发现在删掉边后树的直径端点的一段一定是原直径的端点。因此我们一边 \(dfs\) 即可完成

但还是不够优秀,我们发现我们在计算答案时 \(dfs\) 了很多重复的情况

我们考虑从左到右考虑删哪条边,我们发现每向右移动一条要删的边,左边的树就多出来了红色的我们没有搜索的部分

我们何尝不只搜索红色的节点,然后更新左边的树的直径呢

这样找树的直径就可以做到 \(O(n)\) 了

但是还没完,我们还要考虑怎么找树的中点

我们发现在删边的过程中,左边树的直径长度显然是单增的

因此树的中点位置显然也只会向右移动,因此我们考虑每次修正中点的位置即可

我们在从左到右删完边,考虑完左边树的部分后,我们再从右到左求一边右边树,然后合并答案即可

最终复杂度 \(O(n)\)

此做法的思路是:

  1. 发现删的边只可能是直径上的边

  2. 发现删掉边后树的直径的一个端点是原树直径的一个端点

  3. 发现加点比删点容易,改变搜索顺序

  4. 发现有搜索重复的部分,优化

  5. 考虑直径长度有单调性,优化

标签:城市,删掉,我们,P3761,TJOI2017,端点,考虑,中点,直径
From: https://www.cnblogs.com/fox-konata/p/17729290.html

相关文章

  • 山海鲸智慧交通解决方案demo——构建未来城市出行的数字蓝图
    随着城市化进程的不断加速,城市交通问题也变得日益严重。为了改善城市交通体验、提高出行效率以及减少交通拥堵和环境污染。山海鲸可视化打造城市智慧交通系列解决方案模板,解决方案以“数字孪生技术”为核心,通过数据分析、人工智能和物联网技术来优化城市出行,下面带大家详细了解一......
  • 「数字孪生」技术:创新城市环保的未来
    近年来,城市化进程迅速推进,城市面临着前所未有的环境挑战。同时,数字技术也以惊人的速度发展,为我们提供了前所未有的工具来理解、监测和改善城市环境。在这一背景下,数字孪生技术崭露头角,它不仅能够为城市提供高度精确的环境数据,还可以通过模拟和优化,为城市环境保护作出巨大的贡献。......
  • 深圳轨道交通的特点以及它对城市发展的积极影响
    深圳,作为中国改革开放的窗口城市之一,一直以来都在不断完善自己的城市交通系统。根据广郡通数据平台的数据,截止到2021年,深圳的轨道交通线路长度已达431公里,共有264个轨道交通车站,其中包括44个换乘车站,轨道交通客运量达218,633.2万人次。本文将介绍深圳轨道交通的特点以及它对城市发......
  • 深圳轨道交通的高客运量减轻了城市道路交通的压力
    深圳,一个充满活力的现代都市,其交通系统一直以来都备受瞩目。根据广郡通数据平台的数据,截止到2021年,深圳的轨道交通线路长度达到了431公里,拥有264个轨道交通车站,其中包括44个换乘车站,轨道交通客运量高达218,633.2万人次。本文将探讨深圳轨道交通系统的特点以及它对城市居民的生活产......
  • 深圳轨道交通系统不仅是城市的交通工具
    深圳,作为中国改革开放的典范城市之一,一直以来都在不断完善城市交通系统,以满足日益增长的人口和经济需求。根据广郡通数据平台的数据,截止到2021年,深圳的轨道交通线路长度已达431公里,共有264个轨道交通车站,其中包括44个换乘车站,轨道交通客运量高达218,633.2万人次。本文将探讨深圳轨......
  • 交通革命:智慧技术改善城市出行
    在当今快节奏的现代生活中,交通问题一直是城市面临的重要挑战之一。拥堵、事故和空气污染等问题不仅影响着居民的日常生活,也对经济和环境产生了负面影响。为了解决这些问题,智慧交通作为一项重要的技术和社会创新出现在我们的视野中。 智慧交通的定义智慧交通是一种综合性的交通......
  • 城市区域列表数据 三级联动
    import{regionData,CodeToText}from'element-china-area-data'//引入element组件库中的插件<el-cascaderv-model="areaData":options="options"@change="handleChange"></el-cascader>options:reg......
  • HTML联动选择省份和城市,点击省份后城市数据相应更新
    1、python后端返回的数据:provCityMap={'陕西省':['西安市','咸阳市']} 2、html:<ulclass="list-unstylednews-one__meta"><listyle="width:100%;">......
  • [转]全国城市邮编json格式
    使用时引入importcityfrom'./city.json'即可得到的city即可使用全国城市邮编json格式[{ "label":"北京市", "value":"110000", "children":[{ "label":"市辖区", "value":"110100&quo......
  • 南京民用汽车保有量与城市发展:数据背后的逻辑
     汽车保有量与城市发展:数据的背后随着城市化进程的不断加速,城市汽车保有量也在持续增长。这一现象在南京这样的城市中表现尤为明显。根据广郡通数据平台提供的数据,南京民用汽车保有量从2013年的140.41万辆一路攀升至2022年的306.54万辆,年均增长达14.7%。在分析这一数据的过......