博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷 P2590 [ZJOI2008]树的统计
阅读量:4325 次
发布时间:2019-06-06

本文共 1101 字,大约阅读时间需要 3 分钟。


大家好,我非常喜欢暴力数据结构,于是我用块状树过了这道题目

题目:

一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。

我们将以下面的形式来要求你对这棵树完成一些操作:

I. CHANGE u t : 把结点u的权值改为t

II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值

III. QSUM u v: 询问从点u到点v的路径上的节点的权值和

注意:从点u到点v的路径上的节点包括u和v本身


我们可以将树大约划分为\(\sqrt{n}\)块,每个块内维护到块内根节点的路径长度以及点权最大值,而且,显然,我们可以通过寻找它们的\(LCA\)来找到他们路径上的有关信息,而这里我们已经对树进行了分块。

所以在同一个块内的暴跳时间复杂度最坏为\(O(\sqrt{n})\)

在块与块之间的暴跳的时间复杂度最坏为\(O(\sqrt{n})\)

轻松AC本题目

代码中有较详细注释,贴代码

#include
using namespace std;const int maxn=1e5+10;struct cc{ int to,nex;}e[maxn],dis[maxn];int head[maxn],cnt1,h[maxn],cnt2;void add1(int u,int v)//原树边 { ++cnt1; e[cnt1].to=v; e[cnt1].nex=head[u]; head[u]=cnt1;}void add2(int u,int v)//分块后块内树边 { ++cnt2; dis[cnt2].to=v; dis[cnt2].nex=h[u]; h[u]=cnt2;}int rt[maxn],mx[maxn],sum[maxn],siz[maxn];int n,m,v[maxn],deep[maxn],len,fa[maxn];void dfs(int u,int f,int dep){ deep[u]=dep; int tmp=rt[u]; fa[u]=f; for(int i=head[u];i;i=e[i].nex) { int v=e[i].to; if(v!=f) { if(siz[tmp]+1

骗分过样例,暴力出奇迹!!!

转载于:https://www.cnblogs.com/HenryHuang-Never-Settle/p/10786200.html

你可能感兴趣的文章
阶段3 3.SpringMVC·_05.文件上传_1 文件上传之上传原理分析和搭建环境
查看>>
阶段3 3.SpringMVC·_05.文件上传_4 文件上传之Springmvc方式上传代码
查看>>
阶段3 3.SpringMVC·_05.文件上传_3 文件上传之Springmvc方式上传原理分析
查看>>
阶段3 3.SpringMVC·_05.文件上传_6 文件上传之跨服务器上传代码
查看>>
阶段3 3.SpringMVC·_05.文件上传_5 文件上传之跨服务器上传分析和搭建环境
查看>>
阶段3 3.SpringMVC·_06.异常处理及拦截器_1 SpringMVC异常处理之分析和搭建环境
查看>>
阶段3 3.SpringMVC·_06.异常处理及拦截器_4 SpringMVC拦截器之介绍和搭建环境
查看>>
阶段3 3.SpringMVC·_06.异常处理及拦截器_6 SpringMVC拦截器之拦截器入门代码
查看>>
阶段3 3.SpringMVC·_06.异常处理及拦截器_2 SpringMVC异常处理之演示程序异常
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_01.ssm整合说明
查看>>
阶段3 3.SpringMVC·_06.异常处理及拦截器_3 SpringMVC异常处理之异常处理代码编写
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_03ssm整合之编写Spring框架
查看>>
阶段3 3.SpringMVC·_06.异常处理及拦截器_5 SpringMVC拦截器之编写controller
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_05.ssm整合之Spring整合SpringMVC的框架
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_06.ssm整合之编写MyBatis框架
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_07.ssm整合之编写MyBatis框架测试保存的方法
查看>>
阶段3 3.SpringMVC·_06.异常处理及拦截器_7 SpringMVC拦截器之拦截器接口方法演示
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_09.ssm整合之Spring整合MyBatis框架配置事务
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_02.ssm整合之搭建环境
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_3、快速创建SpringBoot应用之手工创建web应用...
查看>>