Jzoj4727 挺进

用Python+OpenCV搞定线激光相机标定:从棋盘格到3D点云的保姆级实战 本文详细介绍了使用Python和OpenCV进行线激光相机标定的全流程实战,从硬件准备到3D点云重建。涵盖相机内参标定、激光平面方程拟合、三维重建等关键技术,提供完整的代码实现和工程优化建议,帮助开发者实现毫米级精度的工业检测和三维测量系统。 阅读详情

题意:给你一颗树,要求断掉一条边,使得剩下两个联通快的直径之和最大

一看就是树形DP嘛,c1表示最长边c2次长,f表示父亲部分的最长路

上面做法不讲,我们讲一种比较新奇的方法

假设我们枚举断哪一条边,在lgn时间内求出两个联通快的直径不就行了嘛

怎么做呢,我们发现,可以用树的dfs序来维护,我们用一个线段树维护一个区间内的直径的端点和长度

额,如何合并?

我们假设两块的直径端点分别为x1,y1,x2,y2,那么结果就是在这四个点中取2个的所有方案的最大值(证明显然)

但是这道题这样做复杂度较高(n lg^2 n),如果求lca能用rmq就可以将为(n lg n),然而我比较懒用了树剖,而且jz跑的快就过了

#include<stdio.h>
#include<string.h>
#include<algorithm>
#define N 100010
#define LL long long
using namespace std;
struct Edge{ int v,c,nt; } G[N<<1];
struct Node{ int x,y; LL v; } s[N<<2];
int h[N],sz[N],son[N],top[N],d[N],f[N];
int n,cnt=0,clk=0,nl[N],nr[N],c[N]; LL dis[N];
inline void adj(int x,int y,int c){
	G[++cnt]=(Edge){y,c,h[x]}; h[x]=cnt;
}
void dfs(int x,int p){
	d[x]=d[p]+1; f[x]=p; sz[x]=1;
	for(int v,i=h[x];i;i=G[i].nt)
		if((v=G[i].v)!=p){
			dis[v]=dis[x]+G[i].c;
			dfs(v,x); sz[x]+=sz[v];
			if(sz[v]>sz[son[x]]) son[x]=v;
		}
}
void dgs(int x,int p){
	nl[x]=++clk; c[clk]=x; top[x]=p;
	if(son[x]) dgs(son[x],p);
	for(int v,i=h[x];i;i=G[i].nt)
		if((v=G[i].v)!=f[x] && v!=son[x]) dgs(v,v);
	nr[x]=clk;
}
inline LL gLca(int x,int y){
	if(!x || !y) return 0;
	LL S=dis[x]+dis[y];
	for(;top[x]!=top[y];y=f[top[y]])
		if(d[top[x]]>d[top[y]]) swap(x,y);
	return S-((d[x]<d[y]?dis[x]:dis[y])<<1);
}
inline Node gNod(int x,int y){ return (Node){x,y,gLca(x,y)}; }
inline Node max(Node a,Node b){ return a.v<b.v?b:a; }
inline Node merge(Node a,Node b){
	return max(max(a,b),max(max(gNod(a.x,b.x),gNod(a.x,b.y)),max(gNod(a.y,b.x),gNod(a.y,b.y))));
}
void build(int l,int r,int x){
	if(l==r){ s[x]=(Node){c[l],c[l],0}; return; }
	int m=l+r>>1;
	build(l,m,x<<1);
	build(m+1,r,x<<1|1);
	s[x]=merge(s[x<<1],s[x<<1|1]);
}
Node query(int l,int r,int x,int L,int R){
	if(L>R) return (Node){0,0,0};
	if(L<=l && r<=R) return s[x];
	int m=l+r>>1; Node A=(Node){0,0,-1};
	if(L<=m) A=query(l,m,x<<1,L,R);
	if(m<R) A=merge(A,query(m+1,r,x<<1|1,L,R));
	return A;
}
int main(){
	scanf("%d",&n);
	for(int x,y,c,i=1;i<n;++i){
		scanf("%d%d%d",&x,&y,&c);
		adj(x,y,c); adj(y,x,c);
	}
	dfs(1,0); dgs(1,1); build(1,n,1);
	LL A=0;
	for(int i=2;i<=n;++i){
		Node a,b,c;
		a=query(1,n,1,nl[i],nr[i]);
		b=query(1,n,1,1,nl[i]-1);
		c=query(1,n,1,nr[i]+1,n);
		A=max(A,a.v+merge(b,c).v);
	}
	printf("%lld\n",A);
}

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片 基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正 立即下载

相关推荐

华北理工大学以升实验班蓝桥杯选拔赛题解

文章目录华北理工大学以升实验班蓝桥杯选拔赛题解A:期末考试题目描述题目讲解代码B:月份题目描述题目讲解代码C:打饭题目描述题目讲解代码D : 正弦波信号题目描述题目讲解代码E : 亲爱的长方形题目描述题目讲解代码F:挖金子题目描述题目讲解代码G : 金金的游戏题目描述题目讲解代码H : 区间和题目描述题目讲解代码详细视频讲解请关注华北理工大学b站账号。 华北理工大学以升实验班蓝桥杯选拔赛题解 A:期末考试 题目描述 Description 期末考试过去许多天了,如今成绩都出来了,那么现在让我们对成绩我分个类

Qq1739206233的博客 1126

【JZOJ4727】挺进 题解

题目~~~~~~ETG的地图是树形的,相邻房间有一定距离。一开始,系统会随机断掉一条边,然后把四个宝箱两两分布在每个联通块的最远点对上。 ~~~~~~一开始,小Z会出生在一个有宝箱的房间,然后他走到有另外一个宝箱的所在地,接着系统把他送到另一个联通块的某个宝箱处,然后小Z走到最后一个宝箱处,就通关了。 ~~~~~~小Z想知道他最多会走多少距离。

Four's 1738

告别硬件!用Wokwi在线模拟ESP32点灯,5分钟搞定开发环境搭建

本文介绍如何使用Wokwi在线模拟器快速搭建ESP32开发环境,5分钟内完成点灯实验。无需硬件即可体验GPIO控制、PWM调光等核心功能,特别适合物联网开发初学者和快速原型验证。Wokwi的零成本、全功能模拟特性让嵌入式开发变得前所未有的简单高效。

weixin_42567497的博客 493

JZOJ4727. 挺进

题目大意 给定一棵n个点的树,每条边有边权。现在选择一条边将它删除,得到两个联通块,要求最大的联通块直径之和是多少。 Data Constraint n≤100000

Akakii的博客 820

NX二次开发编译时dll自动数字签名及拷贝

在UG5.0开始,所有基于UG二次开发的DLL都要“签名”后才能被客户端上正版的NX调用。

菜鸟爱飞不飞的博客 2683

37、基于视觉的轻量级面部呼吸和心率测量技术

本文提出了一种基于视觉的轻量级面部呼吸和心率测量技术,通过远程光电容积脉搏波描记法(RPPG)和面部振动信息实现非接触式生理信号采集。创新性地结合框选和特征点选择多个感兴趣区域(ROI),并采用光流跟踪、主成分分析(PCA)和集成经验模态分解(EEMD)等方法优化信号处理流程。实验结果表明,该方法在测量精度和稳定性方面优于传统方法,并可在树莓派4等低功耗平台上实现实时运行,具有广泛的应用前景。

r7s8t的博客 306

【挖坑记】JZOJ 4727 挺进

题目大意一棵树,求出随机断一条边后,两个联通块直径和的最大值。 n<=100000,边长<=100000 时间限制 1s 空间限制 256M解题思路对于树上每一个点,预处理出以下数据: 1、每棵子树的根节点到叶节点的最大值、次大值和第三大值d1,d2,d3; 2、每棵子树内直径长度f; 3、每棵子树的子结点中f[son]的最大值和次大值; 4、这个点与该子树以外的点的距离dist的最大

baidu_34015648的博客 552

31.XAPP1052乱序分析及处理

目录 1.XAPP1052乱序分析 2.XAPP1052乱序处理 2.1乱序处理方法选择 2.2 XAPP1052乱序处理代码详解 3.XAPP1052乱序处理后的波形分析 3.1发送引擎 3.2接收引擎 4.XAPP1052乱序处理后的带宽测试 5.下期内容 1.XAPP1052乱序分析 首先先给大家讲解下什么是PCIe的乱序。在PCIe系统中,乱序就是主机发送的TLP序列ID为1、2、3、4到从机,从机接收到的可能不是1、2、3、4。主机和从机如果都不解决乱序的问题,就会导致从机接

一个早起的程序员 1704

JZOJ4727 挺进

题目大意 给你一棵树,让你断掉一条边,使得形成的两棵树的直径和最大。 1≤n≤1000001≤n≤1000001 \le n \le 100000 Solution1 看别人可以用DFSDFSDFS序 + 线段树 + RMQRMQRMQ求LCALCALCA来做,不过倍增的LCALCALCA会被卡,让我感到很难受,所以就没写。 Solution2 题解原话 :裸的树形DP。 照着这...

graygoods的博客 288

解决【x2openEuler环境检查未通过——CheckRepoCurlActor不通过】问题

摘要:x2openEuler使用默认repo源时出现环境检查失败问题,原因是默认源返回308永久重定向错误。解决方法包括:1)为CentOS主机配置华为yum源;2)在x2openEuler Web界面修改为自定义可用源。具体步骤包括备份原源、下载华为源、清除缓存,并通过curl测试确认新源可用性。最终成功配置openEuler-24.03-LTS-SP1版本的repo源后,环境检查顺利通过。

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 258

初探802.11协议(6)——Wi-Fi 6新特性简介

Wi-Fi 6新机制(特性)介绍

FanFF的博客 1522

UVALive 4727

约瑟夫环的问题。 题目给你n,k。n即约瑟夫环的长度,k是淘汰掉从当前开始数的第k个人,然后问你被淘汰的最后三个人是谁。   逆向思维。如果某个人A是最后被淘汰掉的,当最后只剩下一个 人(即A)时,A一定是在0位置(我们从0位置开始,方便取余运算)。那么当只剩下两个人时,A

1079

如何在Ubuntu 22.04系统上安装CUDA 12.9

本文提供Ubuntu22.04系统上安装CUDA12.9的简明指南:1)确认已安装适配575驱动;2)清理旧版本后安装必需依赖库;3)通过deb包方式添加英伟达源并安装CUDA12.9工具包;4)配置环境变量;5)通过nvcc-V和nvidia-smi命令验证安装。文中包含常见问题解决方法及多显卡使用说明,全程约需10分钟完成安装。

2501_93651177的博客 1479

【jzoj 4727】【NOIP2015模拟10.28B组】终章-剑之魂 {贪心}

题目 Description 【背景介绍】 古堡,暗鸦,斜阳,和深渊…… 等了三年,我独自一人,终于来到了这里…… “终焉的试炼吗?就在这里吗?”我自言自语道。 “终焉的试炼啊!就在这里啊!”我再一次自言自语道。 “这背后可能有那个东西吗?”我自言自语道。 “这背后一定有那个东西呢!”我又一次自言自语道。 我沉默着,踏上黑漆漆的索桥,小心翼翼地,拿出锋利的注入我灵魂的双剑…… ...

Nowed 548

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

[JZOJ5134][SDOI省队集训2017]三元组

题目大意求∑ai=1∑bj=1∑ck=1[(i,j)=1][(i,k)=1][(j,k)=1]\sum_{i=1}^a\sum_{j=1}^b\sum_{k=1}^c[(i,j)=1][(i,k)=1][(j,k)=1]推式子首先假设a<=b<=c。 第一步转化为 ∑ai=1∑bj=1,(j,i)=1∑ck=1,(k,i)=1[(j,k)=1]\sum_{i=1}^a\sum_{j=1,(j,i

不来也不去的一只失忆蝴蝶 969

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

[JZOJ5515] 送你一朵圣诞树

Description 给出一棵树(不超过10个点可以作为根),每个点有一个权值a 要求按照某一个顺序选完所有点,一个点必须在父亲选完以后才能选,i号点在第j个被选对答案的贡献为a[i]*j 求最大的答案 Solution 考虑贪心 假如当前先选一个点是最优的,那么一定在选完它的父亲以后立即选它,那么可以将它与父亲缩在一个并查集里,并且答案加上父亲的联通块大小乘上儿子(可以是个联通

Never give in. 911

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【JZOJ4587】Snow的追寻 题解

题目大意      ~~~~~~有一棵有 n 个节点的根节点为 1 的树,他只能走一条不经过重复节点的路径。       ~~~~~~给出 q 个形如“x y”的询问,表示他不能走到 x 和 y 的子树中。现在他想知道对于每组询问,他能走的最长路径是多少,如果没有,输出0。       ~~~~~~n, q<=10^5【显然】      ~~~~~~可走的地方还是一棵树,而我们要求的路径就是这棵

Four's 1906

JZOJ 5746. 和

检查每一个乘号,如果模数小于等于1e18那么可以不用快速加了

Luckfort 632

hrbust 1614 小z的地图 dfs

小z的地图 Time Limit: 1000 MS Memory Limit: 32768 K Total Submit: 101(30 users) Total Accepted: 28(24 users) Rating: Special Judge: No Description 小z有一张被分割

旺旺的博客 352

51nod1632 B君的连通

链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1632 题意:中文题。 分析:原本是一棵树,求删一些边后联通块的期望。很明显联通块个数只和删的边数量有关,即C(n-1,m)*(m+1),n-1条边删m条边得m+1个联通块。 代码: #include #include #include #include #i

Fsss 1287

又开始了

    年也就这么算结束了,有意义的事情也有,无意义的事情也有,只是还没有从年的氛围中出来,主要是不想从家里出来,对家真是很依赖,不情愿,不舍得,还是出来了......     2010年,真的是很关键的一年,究竟是成龙还是成虫就是这一年,加油,找准方向,开始吧     静下心来做事...

我爱罗 227

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

LOJ 6495~6497「雅礼集训 2018 Day1」

. 真是看懂std就秒的三道题,但是看懂就很难啊 (感谢superguymj和memset0两个大佬的代码) 稍微说一下题解 -------------------------------------------------------- 「雅礼集训 2018 Day1」树 这道题的正解被superguymj大佬吊打了,原来O(n⋅2n)O(n·2^n)O(n⋅2n)变成了O(n4)O(n^4)...

扩展の灰(Extended Ash/Cooevjnz) 1562
上一篇: Jzoj4726 种花
下一篇: Jzoj4729 道路修建
扩展的灰
博客等级 码龄12年 60粉丝 342原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值