[BZOJ 3302][Shoi2005]树的双中心:TreeDP

2024-01-10 18:59
文章标签 bzoj 中心 3302 shoi2005 treedp

本文主要是介绍[BZOJ 3302][Shoi2005]树的双中心:TreeDP,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击这里查看原题

首先可以想到n^2做法,枚举每一条边,切断这条边变成两棵树,对两棵树各O(n)求一遍重心,加和即为答案
但是题目中有一个重要条件,高度h不超过100,因此可以O(h)求重心,即每次向权值和最大的儿子转移(维护时需要维护最大和次大)。
总复杂度O(nh)

/*
User:Small
Language:C++
Problem No.:3302
*/
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int M=50005;
const ll inf=(ll)1<<60;
int n,tot=1,fir[M],w[M],cut,mx[M][2],dep[M],fa[M];
ll g[M],ans=inf,sum[M],sumall,a,b;
struct edge{int v,nex;
}e[M<<1];
void add(int u,int v){e[++tot]=(edge){v,fir[u]};fir[u]=tot;
}
void dfs(int u,int f){fa[u]=f;for(int i=fir[u];i;i=e[i].nex){int v=e[i].v;if(v==f) continue;dep[v]=dep[u]+1;dfs(v,u);sum[u]+=sum[v];g[u]+=g[v]+sum[v];if(sum[v]>sum[mx[u][0]]) mx[u][1]=mx[u][0],mx[u][0]=v;else if(sum[v]>sum[mx[u][1]]) mx[u][1]=v;}
}
void getcen(int tp,int u,ll k,ll &res){res=min(res,k);int v=mx[u][0];if(v==cut||sum[mx[u][1]]>sum[mx[u][0]]) v=mx[u][1];if(!v) return;getcen(tp,v,k+sum[tp]-2*sum[v],res);
}
void solve(int u){for(int i=fir[u];i;i=e[i].nex){int v=e[i].v;if(v==fa[u]) continue;cut=v;for(int k=u;k;k=fa[k]) sum[k]-=sum[v];a=b=inf;getcen(1,1,g[1]-g[v]-dep[v]*sum[v],a);getcen(v,v,g[v],b);ans=min(ans,a+b);for(int k=u;k;k=fa[k]) sum[k]+=sum[v];solve(v);}
}
int main(){freopen("data.in","r",stdin);//scanf("%d",&n);for(int i=1;i<n;i++){int u,v;scanf("%d%d",&u,&v);add(u,v);add(v,u);}for(int i=1;i<=n;i++) scanf("%lld",&sum[i]);dfs(1,0);solve(1);printf("%lld\n",ans);return 0;
}

这篇关于[BZOJ 3302][Shoi2005]树的双中心:TreeDP的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/591757

相关文章

跨国公司撤出在华研发中心的启示:中国IT产业的挑战与机遇

近日,IBM中国宣布撤出在华的两大研发中心,这一决定在IT行业引发了广泛的讨论和关注。跨国公司在华研发中心的撤出,不仅对众多IT从业者的职业发展带来了直接的冲击,也引发了人们对全球化背景下中国IT产业竞争力和未来发展方向的深思。面对这一突如其来的变化,我们应如何看待跨国公司的决策?中国IT人才又该如何应对?中国IT产业将何去何从?本文将围绕这些问题展开探讨。 跨国公司撤出的背景与

模具要不要建设3D打印中心

随着3D打印技术的日益成熟与广泛应用,模具企业迎来了自建3D打印中心的热潮。这一举措不仅为企业带来了前所未有的发展机遇,同时也伴随着一系列需要克服的挑战,如何看待企业引进增材制造,小编为您全面分析。 机遇篇: 加速产品创新:3D打印技术如同一把钥匙,为模具企业解锁了快速迭代产品设计的可能。企业能够迅速将创意转化为实体模型,缩短产品从设计到市场的周期,抢占市场先机。 强化定制化服务:面

Nacos Config 配置中心支持配置共享

文章目录 一、什么是配置中心二、Nacos Config2.1 Nacos Config 工作原理 (★)2.2 Nacos Config 的使用2.3 动态刷新2.4 配置共享2.4.1 同一个微服务的不同环境之间共享配置2.4.2 不同微服务中间共享配置 一、什么是配置中心 微服务架构下关于配置文件的存在以下问题: 配置文件相对分散。在一个微服务架构下,配置文件会随

ELK+Spring Cloud搭建分布式日志中心

ELK+Spring Cloud搭建分布式日志中心 1.ELK简介2.资源包下载3.Elasticsearch安装3.1 解压Elasticsearch3.2 修改Elasticsearch的配置文件3.3 修改系统配置3.4 启动Elasticsearch 4.ElasticSearch-head插件安装5.Logstash安装6.Kibana安装7.SpringCloud集成logsta

软件中心哪家强?

方德软件中心体验版全新上线: 更贴心的软件分类,用户可以快速地从软件仓库中找到自己喜爱的软件。对Linux爱好者来说,可以充分感受到和Windows系统一样的便利和无障碍的操作习惯。 与同类产品相比,在软件数量更多、选择余地更大的同时,推出定制化的截图软件、压缩软件等,并且我们还在源源不断更新哟,另外考虑到部分Linux初级用户,还在软件中心首页中加入了软件的常用搭配和装机必备等定制主题,

吐血整理nacos 作为springcloud的配置中心和注册中心

吐血整理nacos 作为配置中心和注册中心 环境版本nacos 版本 nacos启动单机模式启动配置数据库 Spring cloud 连接注册Nacos配置中心导入依赖 注册中心 环境版本 SpringBoot版本SpringCloud版本cloud Alibaba版本2.6.132021.0.52021.0.5.0 参照依据 spring-cloud-alibab 对应

数字经济时代,零售企业如何实现以消费者为中心的数字化转型?

在数字经济时代,零售企业正面临着前所未有的挑战与机遇。随着消费者行为的数字化和多样化,传统的零售模式已难以满足市场需求。为了在激烈的市场竞争中立于不败之地,零售企业必须实现以消费者为中心的数字化转型。这一转型不仅仅是技术的升级,更是一场涉及企业战略、组织结构、运营模式和人才管理的深刻变革。本文将探讨零售企业在数字化转型过程中遇到的难点,并提出相应的解决策略,通过实际案例分析,展示如何通过综合措施进

图特征工程实践指南:从节点中心性到全局拓扑的多尺度特征提取

图结构在多个领域中扮演着重要角色,它能有效地模拟实体间的连接关系,通过从图中提取有意义的特征,可以获得宝贵的信息提升机器学习算法的性能。 本文将介绍如何利用NetworkX在不同层面(节点、边和整体图)提取重要的图特征。 本文将以NetworkX库中提供的Zachary网络作为示例。这个广为人知的数据集代表了一个大学空手道俱乐部的社交网络,是理解图特征提取的理想起点。 我们先定义一些辅助函数

【kubernetes】配置管理中心Configmap运用

一,介绍 Configmap(简写 cm)是k8s中的资源对象,用于保存非机密性的配置的,数据可以用key/value键值对的形式保存,也可通过文件的形式保存。 【局限性】:在ConfigMap不是用来保存大量数据的,其数据量不可超过1 MiB。 kubectl get cm 二,功能 Configmap资源对象,可以有一个或者多个Configmap,通过 volume 形式映射到容器

Anroid BLE蓝牙(手机分别作为中心设备和外围设备)

蓝牙是一种短距的无线通讯技术,可实现固定设备、移动设备之间的数据交换。一般将蓝牙3.0之前的BR/EDR蓝牙称为传统蓝牙,而将蓝牙4.0规范下的LE蓝牙称为低功耗蓝牙。  BLE蓝牙模块主要应用领域     1、移动扩展设备     2、汽车电子设备     3、健康医疗用品:心跳带、血压计等     4、定位应用:室内定位、井下定位等     5、近距离数据采集:无线