51nod1803 森林直径

深度学习PyTorch代码模板——模型训练框架、数据处理、绘图… 个人用深度学习代码模板:模型训练框架、数据处理、绘图等。待补充。 阅读详情


题目看这里
(为什么xhEditor不能支持字体了,不管了,那就用markdown吧)

一个非常有意思的题目,首先考虑离线做法,把所有的询问按照l排序,所有的边倒序插入整个树中
我们需要维护两个东西:
1.f[x][i]表示当整颗树有[x,f[x][i]]这一个区间内的所有边时,以x为根的子树存在一个深度为i的儿子,满足条件最小的f[x][i]
2.g[k]表示最小的r,使得[l,r]组成的森林拥有长度为k的直径
那么每次加入一条边(x,y) (x为y的祖先) 我们就需要更新这两个东西:
g[i+j+1]=min(g[i+j+1],max(f[x][i],f[y][j],y-1)) (注意y-1就是这条边的编号)
f[x][i]=min(f[x][i],max(y-1,f[y][j-1])
注意到题目的性质,树高是log n级别的
所以一次操作是O(log n) 的,一共n次加边,总复杂度O(n lg n)

(再也弄不回原来的code风格了,否则就是没有高亮的了)

#pragma GCC optimize("O3")
#pragma G++ optimize("O3")
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define M 35
#define N 500010
using namespace std;
struct Q{ int l,r; } s[N];
int n,m,f[N][M],g[M<<2],p[N],A;
inline bool cmp(Q a,Q b){ return a.l==b.l?a.r>b.r:a.l>b.l; }
inline void adj(int x,int y){
    for(int i=0;i<M;++i) if(f[x][i]<n)
        for(int j=0;j<M;++j) g[i+j+1]=min(g[i+j+1],max(max(f[x][i],f[y][j]),y-1));
    for(int i=0;i<M;++i) f[x][i]=min(f[x][i],max(f[y][i-1],y-1));
}
int main(){
    scanf("%d",&n); memset(f,0x3f,sizeof f);
    for(int i=1;i<n;++i) scanf("%d%*d",p+i),f[i][0]=0;
    scanf("%d",&m); f[n][0]=0;
    for(int i=1;i<=m;++i) scanf("%d%d",&s[i].l,&s[i].r);
    sort(s+1,s+1+m,cmp); memset(g,0x3f,sizeof g);
    for(int i=n-1,j=1;i&&j<=m;--i){
        adj(p[i],i+1);
        for(int k=M*2;j<=m&&s[j].l==i;++j)
            for(++k;;--k) if(g[k]<=s[j].r) { A+=k; break; }
    }
    printf("%d\n",A);
}

【AI编程】Claude Code 最强AI 编程利器项目实战详解 Claude Code 最强AI 编程利器项目实战详解 阅读详情

相关推荐

QTableView为例:Qt模型视图委托(MVD)(Model-View-Delegate)

QT中的MVD(模型-视图-委托)模式是一种类似于MVC的设计模式,将数据、界面和交互逻辑分离。模型负责数据管理,视图负责显示界面,而委托则嵌入在视图中处理数据的显示和编辑。QT提供了多种视图组件(如QListView、QTreeView、QTableView)和模型类(如QStandardItemModel、QAbstractItemModel),支持数据的多样化呈现。委托(Delegate)通过定制显示和编辑行为增强了视图的灵活性。该模式适用于各类数据结构展示(列表、表格、树形),能够高效处理数据与界面

菜一头包的博客 1988

51nod 1803 森林的直径

链接: https://www.51nod.com/onlineJudge/questionCode.html#problemId=1803&noticeId=396652树是随机生成的。就题目的代码设计思路不会很复杂。但问题是树的深度较坏情况的概率。我们是需要分析好的。也就是说,我们需要明白随机生成一棵树的期望深度是多少。出现稍微坏一点的可能又是多少。题目中生成树的方式可以生成任何一种形状的nn

ZLH_HHHH的博客 668

Workbench中直接调用ICEM CFD进行网格划分

自从ANSYS 12.0之后,ICEM CFD就从Workbench中被分离出去,作为一个独立的程序使用了。取而代之的是Meshing模块。 在Meshing的属性节点菜单中右键点击Mesh,选择Insert > Method,插入方法。 选择需要划分网格的几何体,点击apply。此时Geometry显示为1 Body。 设置Method为MultiZone,如果不设置成这个的话,找不到进入ICEM CFD的入口。如果要划分四面体,可以在Mapped Mesh Type中选择其他类型。

Yan的博客 6509

51Nod 1590 合并数字 c/c++题解

题目描述 1-n,共n个数字,初始时每个数都是独立的算作1个串,之后会进行n-1次合并,每次合并操作,会把一个串放到另一个串的后面。 合并时会给出2个数字,x y,表示将以y为开头的串放到x为开头的串的后面。例如: 1 3 (3放到1后面,=> (1 3), 2, 4 ) 2 4 (4放到2后面,=> (1 3), (2 4)) 1 2 (2放到1后面,=> (1 3 2 4)...

东瓜blog 1477

LangChain与SkillLite集成:AI Agent安全沙箱实践

在AI与自动化技术领域,安全沙箱是实现可信计算的核心机制。其原理是通过资源隔离与权限控制,构建受限的执行环境。技术价值在于平衡功能开放性与系统安全性,尤其适用于处理用户提交的非受信代码或敏感数据。典型应用场景包括AI插件系统、在线代码评测平台等。本文以LangChain框架与SkillLite沙箱的深度集成为例,详解如何通过命名空间隔离、cgroups限制等机制,为AI Agent赋予安全执行动态技能的能力。其中涉及的关键技术点包括Python运行时隔离、动态资源配额管理,以及如何防范Shell注入等常见攻

weixin_34189116的博客 404

用Python和sklearn预测NBA比赛胜负:从数据清洗到模型优化的完整流程

本文详细介绍了如何使用Python和sklearn构建NBA比赛胜负预测模型,涵盖从数据清洗、特征工程到模型优化与部署的完整流程。通过对比随机森林、XGBoost等主流算法,提供实战技巧和解决方案,帮助数据爱好者掌握体育数据分析的核心技术。

weixin_30823001的博客 131

51Nod-1803-森林直径

ACM模版描述题解根据题目,我们知道,数据是随机建树的,所以树的深度不会特别大,约摸 lg nlg\ n,所以我们可以树归搞搞,亲测,数据随机建树深度最大不超过 6161,大一点没毛病,小一点就 WAWA,至于官方题解中所说的解法,不是特别会写,只给大家贴一下参考参考。官方题解:代码#include <cstdio> #include <cstring> #include <algorithm>us

逐梦者 720

【DRAM存储器二】Sense Amplifier

详述DRAM颗粒中感应放大器功能、电路结构、工作原理和操作波形

highman110的博客 7192

POJ1849Two[DP|树的直径](扩展HDU4003待办)

Two Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 1390   Accepted: 701 Description The city consists of intersections and streets that connect them. ...

weixin_34097242的博客 112

YOLOv11全网首发:注意力独家魔改 | 具有切片操作的SimAM注意力,魔改SimAM助力小目标检测

1)直接作为注意力使用,效果秒杀SimAM;2)高效和卷积结合,代替原始网络的卷积操作;

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1570

【图像超分】论文精读:Interpreting Super-Resolution Networks with Local Attribution Maps(LAM)

论文题目:Interpreting Super-Resolution Networks with Local Attribution Maps —— 用局部归因图解释超分辨率网络CVPR 2021!必读文章!必须会的可视化手段!很多文章中都会对比LAM!图像超分辨率 (SR) 技术发展迅速,受益于深度网络的发明及其连续突破。然而,众所周知,深度学习和深度神经网络很难解释。SR网络继承了这种神秘的性质,很少有作品试图理解它们。在本文中,我们对 SR 网络进行了归因分析。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 546

CodeForces 731C(并查集+vector+map)

题目链接:点击打开链接题目大意:就是先输入n,m,k,分别表示袜子数量,天数,颜色数量,接下来n个数字是代表每种袜子的颜色,再接下来m行,每行两个数,表示那一天穿哪两双袜子。要求改最小数量的袜子的颜色来使每天的袜子都是相同颜色的。 题目思路:先按照最正常的并查集,把需要同一颜色的袜子都变成一个集合,然后要先找一遍每个人的老大(之前没找,结果凉了..)如图这步..然后接下来就要进行遍历,从第一双袜子...

smilestruggler_Fly To Higher 366

零基础学GPU KMD--8. 内存管理:GPU 显存与系统内存的协同​8.1 显存分配策略:GEM / TTM 原理

支持 VRAM、GTT(Graphics Translation Table)、SYSTEM 内存的动态迁移与缓存管理。:若缓冲区在 SYSTEM,TTM 分配 GTT 条目并建立页表映射,使 GPU 可直接访问。:系统内存中预留给 GPU 直接访问的区域,通过 GPU 的 MMU 做地址翻译。你需要我继续展开这一部分吗?​ 为复杂离散 GPU 设计,应对大容量 VRAM、多内存域、显存迁移等问题。:重量级、功能全,适合大容量、多内存域的离散 GPU,强调显存迁移与统一管理。

amy_mhd的博客 185

CodeForces - 1131F Asya And Kittens 【双向并查集】

ps 双向并查集这个name是我自己yy出来的 Decription Asya loves animals very much. Recently, she purchasednnkittens, enumerated them from11andnnand then put them into the cage. The cage consists of one row of...

MengHao的博客 458

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

51Nod 1106 质数检测

题目链接 #include #include #include #include #include #include #include using namespace std; int prime(int x){ if(x==2||x==3) return 1; int num=sqrt(x); for(int i=2;i<=num;i++) if(x%i==0) return 0

JUST CODE IT 285

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

51NOD 算法马拉松15(脱欧专场) B君的游戏(博弈)

传送门B君的游戏 wwwwodddd (命题人) 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 B君和L君要玩一个游戏。刚开始有n个正整数 ai 。双方轮流操作。每次操作,选一个正整数x,将其移除,再添加7个数字 x1,x2…x7 。要求对于 xi ,满足 0<= xi < x 且 x&xi=xi 注意0不能被选取,所以这个游戏一定会结束,而谁无法操作谁就

代码改变世界 2202

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

51nod1769(dirichlet convolution)

这个题与上次那个题类似,也是个狄雷克卷积的。 但是这题k很大,不能用快速幂了,那我们就要充分考虑 multiplicative function的性质。具体的过程51nod上面给了很清楚了,主要是给出线性筛部分的代码(这个也是借鉴别人的,侵删)。还有要开读入挂。#include <iostream> #include <cstdio> #include <algorithm> #include

luotuoqingshan的博客 483

51Nod1019 逆序数(归并排序详解)

逆序对 给定一个1-N的排列A1, A2, ... AN,如果Ai和Aj满足i &lt; j且Ai &gt; Aj,我们就称(Ai, Aj)是一个逆序对。   求A1, A2 ... AN中所有逆序对的数目。 input   第一行包含一个整数N。   第二行包含N个两两不同整数A1, A2, ... AN。(1 &lt;= Ai &lt;= N)   对于60%的数据 1 &lt;...

WonderKing'blog 1441

51nod 1769 Clarke and math2(线性筛+dp)

克拉克是一名人格分裂患者。某一天他变成一名数学家,在研究奇怪的东西。 他突然想算这么一个式子,给出 f(i),1≤i≤n ,要求算 g(i)=∑i1∣i∑i2∣i1∑i3∣i2⋯∑ik∣ik−1f(ik) mod 1000000007 (1≤i≤n,ij∈N+) ∣ 是整除的意思,比如 i1=5,i2=10则i1∣i2 样例解释:g(i) = sum(i1 | i) sum(i2 | i

Miracle_ma的专栏 4157

51nod-1714 B君的游戏

原题链接 1714 B君的游戏 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 B君和L君要玩一个游戏。刚开始有n个正整数  a i    。 双方轮流操作。每次操作,选一个正整数x,将其移除,再添加7个数字  x 1 ,x 2 ...x 7    。要求对于  x i    ,满足  0x

L. 1355

51nod 1322 关于树的函数

题目 题解 #include&lt;bits/stdc++.h&gt; #include&lt;tuple&gt; using namespace std; typedef tuple&lt;int,int&gt; ti; typedef long long ll; #define mt make_tuple const int N=4002; struct node{ int t...

xumingyang0的博客 279

51nod 小树

题意:问n个点有m个叶子的带标号无根树数量。n,m<=1000000 题解:注意到(为啥我就注意不到QAQ)一个节点是叶子当且仅当其在prufer编码中没有出现。那么答案就是Cmn∗S(n−m),其中S(k)表示有多少长度为n-2的序列满足这里面恰好出现了k种元素。这个可以用容斥原理来做。代码#include <bits/stdc++.h>typedef long long ll;const int

ypxrain的博客 395

51nod 1389 跳跳树 倍增

题意小a与小b在树上玩一个游戏,每一轮游戏小a与小b在树上选两个点,然后小a朝着小b所在的方向移动。神奇的是,这棵树上每条边都有一个长度的,每个点上都有一棵非常高的松树。小a可以从高处不耗费任何体力跳往相邻的低处,也可以耗费一点体力,走不超过k的长度的路径走到某个点然后跳到松树顶端(不能停在路中央)。现在他们进行了Q次游戏,每一次小a所在的位置为xi的顶端,小b所在的位置为yi的顶端。小a想知道最少

beginend 538

51Nod-1849-Clarke and package

ACM模版描述题解官方题解:代码#include <iostream> #include <algorithm> #include <cstdio>using namespace std;const int MAXN = 3000; const int MAGIC_I = 10000; const double MAGIC_D = 0.0001;template <class T> inline v

逐梦者 526

Jzoj3467 最长上升子序列

维护一个序列,使它可以进行下面两种操作: 1.在末尾添加一个数字x 2.将整个序列变成第x次操作后的样子 在每次操作后,输出当前序列的最长上升子序列的长度 序列初始时为空 嗯,可持久化线段树的裸题 额这可是noip提高组难度的题,我们发现所有操作可以变成一棵树(离线做法老套路了) 让后每次最多修改数组上的一个值(考虑二分求LIS的过程)最后改回去就好了 注意dfs又卡栈(jzo

扩展の灰(Extended Ash/Cooevjnz) 3022

Jzoj4210 我才不是萝莉控呢

小Y:“小R你是萝莉控吗。”小R:“...”  为了避免这个尴尬的话题,小R决定给小Y做一道题。 有一个长度为n的正整数数组A,满足艾> =艾+ 1,现在构造一个数组B,令的Bi = ΣA[j] (j∈[i,n])。 现在,有一个N * N的网格图,左下角坐标是(1,1),右上角坐标是(N,N)。有一个小SB正在坐标为(n,1)的位置,每一时刻,如果他现在在(x,y),他可以选择走到(x?-

扩展の灰(Extended Ash/Cooevjnz) 1772
上一篇: 圆周率 π 是否隐藏了本个宇宙的设计者留给这个宇宙的智慧文明的某种信息?
下一篇: 51Nod1543 铁人两项
扩展的灰
博客等级 码龄12年 60粉丝 342原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值