【JZOJ 4715】树上路径

从软体机器人到鞋垫分析:Abaqus超弹性材料(Ogden模型)仿真配置全流程 本文详细介绍了Abaqus中Ogden模型在超弹性材料仿真中的应用全流程,涵盖从实验数据导入、参数拟合到模型构建与求解优化的关键步骤。特别针对鞋垫分析等生物力学场景,提供了单元选择、接触设置和并行计算等实用技巧,帮助工程师实现高精度仿真分析。 阅读详情

Description

给出一棵树,求出最小的k,使得,且在树中存在路径p,使得k>=S且k<=E。(k为路径p上的边的权值和)

Solution

很显然的点分治嘛,
为了防止选的点在同一棵子树中,我们再维护一个数组表示当前位置往后的第一个和我不在一块子树的点的位置,
我们先象标准点分治一样维护两个指针i,j,在维护完j以后,判断当前的j是否和i在一颗子树中,是就跳到往后第一个不是的,再算答案,
复杂度:O(nlog2(n))(也敢开105??!!)

Code

#include<cstdio>
#include<cstdlib>
#include<algorithm>
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define fod(i,a,b) for(int i=a;i>=b;i--)
#define efo(i,q) for(int i=A[q];i;i=B[i][0])
using namespace std;
const int N=100500,maxlongint=2147483640;
int read(int &n)
{
    char ch=' ';int q=0,w=1;
    for(;(ch!='-')&&((ch<'0')||(ch>'9'));ch=getchar());
    if(ch=='-')w=-1,ch=getchar();
    for(;ch>='0' && ch<='9';ch=getchar())q=q*10+ch-48;n=q*w;return n;
}
int m,n,ans,S,E;
int a[N],b0;
struct qqww
{int s,g,nx;}b[N];
bool z[N];
int H[N],CE,CE1;
int A[N],B[2*N][3],B0;
int min(int q,int w){return q<w?q:w;}
int max(int q,int w){return q>w?q:w;}
void link(int q,int w,int e)
{
    B[++B0][0]=A[q],A[q]=B0,B[B0][1]=w,B[B0][2]=e;
    B[++B0][0]=A[w],A[w]=B0,B[B0][1]=q,B[B0][2]=e;
}
int findc(int q,int fa,int w)
{
    H[q]=1;int t=0,t1;
    efo(i,q)if(B[i][1]!=fa&&!z[B[i][1]])t1=findc(B[i][1],q,w),H[q]+=t1,t=max(t,t1);
    if(max(w-H[CE],CE1)>max(w-H[q],t))CE=q,CE1=t;
    return H[q];
}
void dfs1(int q,int e,int fa,int g)
{
    b[++b0].s=e;b[b0].g=g;
    efo(i,q)if(B[i][1]!=fa&&!z[B[i][1]])dfs1(B[i][1],e+B[i][2],q,g);
}
bool PX(qqww q,qqww w){return q.s<w.s||(q.s==w.s&&q.g<w.g);}
void divide(int q,int ALLN)
{
    CE=CE1=0;findc(q,q,ALLN);
    q=CE;z[q]=1;
    b0=0;
    efo(i,q)if(!z[B[i][1]])dfs1(B[i][1],B[i][2],q,B[i][1]);
    sort(b+1,b+1+b0,PX);
    int t=b0+1;
    fod(i,b0,1)
    {
        b[i].nx=t;
        if(b[i].g!=b[i-1].g)t=i;
        if(b[i].s>=S)ans=min(ans,b[i].s);
    }
    int j=b0;
    fo(i,1,b0)
    {
        while(b[i].s+b[j-1].s>=S)j--;
        t=j;if(b[t].g==b[i].g)t=b[t].nx;
        if(b[i].s+b[t].s>=S&&t<=b0)ans=min(ans,b[i].s+b[t].s);
    }
    efo(i,q)if(!z[B[i][1]])divide(B[i][1],H[B[i][1]]);
}
int main()
{
    int q,w,e;
    read(n),read(S),read(E);
    ans=maxlongint;;
    fo(i,1,n-1)read(q),read(w),read(e),link(q,w,e);
    ans=maxlongint;
    divide(1,n);
    if(ans<=E)printf("%d\n",ans);
        else printf("-1\n");
    return 0;
}
OpenClaw 报错 npm install failed; cleaning up and retrying...:原生模块编译失败 本文针对OpenClaw项目在部署时出现的"npm install failed"报错问题进行分析,指出该问题源于Node.js原生模块编译链缺失。文章详细列举了常见触发原因,包括缺少gcc/make、Python版本不符、Node版本过新等,并提供了五种解决方案:安装完整编译环境、配置node-gyp Python、重新编译原生模块、切换Node版本以及单独重建失败模块。最后强调在国产服务器环境下部署AI工程时,补齐编译环境和使用稳定Node版本是解决问题的关键,该方案可复用解决 阅读详情

相关推荐

基于深度学习方法(7种)的高光谱与多光谱图像融合(附代码+3个数据集获取)

其他不懂的可以把代码发给AI哦,让它给你解读。

热爱分享,热爱记录 1298

简单的树上问题

还不错的题,从链推广到树。

七代目鸽影 422

MATLAB安装配置libsvm(附MinGW64配置)

首先声明版本,本人PC系统Windows10 64bit,matlab安装的2016b,libsvm安装的version3.2.21.首先需要下载libsvm包:从林教授的网站上下载: http://www.csie.ntu.edu.tw/~cjlin/libsvm/2.将libsvm3.2.2解压到matlab/toolbox目录下:解压后:D:\matlab2016b\toolbox\libs...

github_35807147的博客 4万+

poj1741 Tree (求树上任意两点之间权值和小于k的个数)(树分治)

题意:给你n个节点的树和k,问在这个树上两点之间最近距离小于k的情况有多少种? 思路: 看了两天题解(有些还写错)和一篇关于树分治的论文分治算法在数的路径问题中的应用才知道这是一类我从来没有做过的思想,在树上利用重心分治的搞一下把O(n)的步骤优化到O(logn). 先分析: 假定选择一点1为根,那其他点到根的最短距离就有两种情况。 其一,它们在根的不同分支上,那他们的最近距离就是它们到它

笔记 3374

【全开源】教育培训微信小程序源码(FastAdmin+ThinkPHP+Unipp)

教育培训微信小程序源码以其便捷性、互动性、安全性等优势,成为了教育培训行业的新宠。随着移动互联网技术的不断发展,教育培训微信小程序源码将继续引领未来学习趋势,为学员提供更加优质、高效的学习体验。同时,教育培训机构也应积极拥抱小程序技术,利用源码打造具有自身特色的学习平台,提升品牌影响力和市场竞争力。

2401_84414018的博客 2100

拆解一个带主动均衡的BMS模块:从变压器、MOS管矩阵到控制逻辑,图文详解内部设计与成本构成

本文深度拆解了一款带主动均衡功能的BMS模块,详细解析了其核心架构、元器件选型与成本构成。通过高频变压器、MOS管矩阵等硬件设计,该模块实现了高达87%的能量转移效率,远超普通被动均衡方案。文章还揭示了汽车级PCB设计、软件策略优化等关键技术细节,为锂电池管理系统设计提供了实用参考。

weixin_42638178的博客 348

poj1741(点分治 路径长度<=k路径数量

poj1741(点分治 路径长度<=k路径数量 题意: 给一颗n个点的树,问路径长度<=k的路径有多少 思路: 点分模板题,因为是计数+<=k的路径,所以采用容斥写法,容斥写法常用加上排序等操作,这里路径长度排序后具有单调性,所以直接统计就可以了 当然还有别的如树状数组之类的统计方法,但是感觉没必要 时间复杂度O(nlog2n)O(nlog^2n)O(nlog2n) #include<iostream> #include<cstdio> #include<cs

weixin_45539557的博客 253

从原理到代码:拆解UniFormer中动态位置嵌入(DPE)的3D卷积实现

本文深入解析了UniFormer模型中动态位置嵌入(DPE)模块的3D卷积实现原理与代码。DPE通过一个轻量的3D深度可分离卷积,替代传统静态位置编码,使模型能自动学习视频数据的时空位置关系。文章对比了其与Swin Transformer相对位置偏置的优劣,并提供了PyTorch实现代码与高级定制方案,为视频理解任务提供了高效灵活的动态位置编码解决方案。

weixin_29207149的博客 309

JZOJ.4715【NOIP2016提高A组模拟8.19】树上路径

点分治

Luckfort 663

二极管钳位电路、限幅电路和检波电路Multisim电路仿真

本文系统介绍了二极管钳位、限幅和检波三种基础电路的工作原理及Multisim仿真验证。钳位电路通过电容-二极管配合实现波形整体平移,将波峰或波谷固定在指定电压;限幅电路利用二极管导通特性削除信号超出设定阈值的部分;检波电路则通过半波整流和电容滤波从调幅波中提取音频信号。三种电路均通过Multisim仿真验证了理论分析结果,展示了二极管在信号处理中的关键作用。这些基础电路广泛应用于信号调理、电平保护和通信解调等领域。

XU157303764的博客 1121

运维系列【仅供参考】:RustDesk部署疑难解答

RustDesk部署疑难解答

weixin_54626591的博客 279

【NOIP2016提高A组模拟8.19】树上路径

Description给出一棵树,求出最小的k,使得,且在树中存在路径p,使得k>=S且k<=E。(k为路径p上的边的权值和)Input第一行给出N,S,E。N代表树的点数,S,E如题目描述。 下面N-1行给出这棵树的相邻两个节点的边及其权值W。Output输出共一行一个整数,表示答案。若无解输出-1。Sample Input5 10 40 2 4 80 2 3 57 1 2 16 2 5

Jacky35 844

一文搞懂数据标注

数据标注即通过分类、画框、标注、注释等,对图片、语音、文本等数据进行处理,标记对象的特征,以作为机器学习基础素材的过程。简言之,就是需要给数据做好标注,这样机器就能知道学习哪些内容。

女王の专属领地 9943

Jzoj4715 树上路径

给出一棵树,求出最小的k,使得,且在树中存在路径p,使得k>=S且k<=E。(k为路径p上的边的权值和) 这是一道点分治的题目,不过做法多样,也可以用启发式合并水过去,好像还有一种方法是什么二分 如果直接点分治的话,我们将子树内所有的点排序,求出其所处的子树编号belong,再求出next数组,next[i]=j表示belong[i]!=b...

dianning8393的博客 222

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【JZOJ4715】树上路径

Description给出一棵树,求出最小的k,使得,且在树中存在路径p,使得k>=S且k<=E。(k为路径p上的边的权值和)

sadnohappy 953

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【JZOJ 4715】 树上路径

Description给出一棵树,求出最小的k,使得,且在树中存在路径p,使得k>=S且k<=E。(k为路径p上的边的权值和) 对于100%的数据满足n<=10^5,|E-S|<=10^6 对于所有数据满足1<=Wi<=1000,|E|,|S|<=10^9Analysis经典的点分治。 具体方法就像树中点对距离一样,记录到重心的距离与所属的子树。 按到重心的距离排序。 一个指针往右扫,二分

LYD729 652

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

JZOJ4715树上路径 点分治

这居然是联赛题我一脸懵逼。。根本没往那方向上想。 题目大意: 让你求树上最短的路径,但是路径长度必须>=l,<=r,n<=10^5,r-l<=10^6,l,r<=10^9; 其实是我点分治没怎么打过,这其实是一道很一眼的点分治的题。。我是懵比了。。 可以算是模板题吧,我是直接点分治莽一波,然后就过了,题解还说是二分,我比赛时候就想到是二分。。mdzz。 代码:#include<iostre

老臣 490

JZOJ 4715 树上路径 (点分)

【NOIP2016提高A组模拟8.19】树上路径Description 给出一棵树,求出最小的k,使得,且在树中存在路径p,使得k>=S且k<=E。(k为路径p上的边的权值和)Input 第一行给出N,S,E。N代表树的点数,S,E如题目描述。 下面N-1行给出这棵树的相邻两个节点的边及其权值W。Output 输出共一行一个整数,表示答案。若无解输出-1。Sample Input 5 1

w4149 423

【jzoj4715】【树上路径】【树】【分治】【点分治】

题目大意给出一棵树,求出最小的k,使得,且在树中存在路径p,使得k>=S且k<=E。(k为路径p上的边的权值和)解题思路点分治,求出所有点到当前重心的距离以及所属的子树,排序后扫描并用不同子树的点更新答案,然而我的做法很暴力,很有可能超时,但随机数据下表现良好,应该有更好的方法。暴力code#include<set> #include<cmath> #include<cstdio> #include

inklutcuah’s blog 444

【JZOJ4715】【NOIP2016提高A组模拟8.19】树上路径

题目描述给出一棵树,求出最小的k,使得,且在树中存在路径p,使得k>=S且k<=E。(k为路径p上的边的权值和)输入第一行给出N,S,E。N代表树的点数,S,E如题目描述。 下面N-1行给出这棵树的相邻两个节点的边及其权值W。输出输出共一行一个整数,表示答案。若无解输出-1。样例输入5 10 40 2 4 80 2 3 57 1 2 16 2 5 49样例输出16样例解释1到2的路径即为答

=w= 416

JZOJ 4715 【NOIP2016提高A组模拟8.19】树上路径

树上路径题目大意给出一棵树,求出最小的kk,使得,且在树中存在路径pp,使得kk>=SS且kk<=EE。(kk为路径pp上的边的权值和)数据范围nn<=10510^5 , EE-SS<=10610^6,EE,SS<=10910^9题解这一题显然 就是点分治。 以下是一道点分治的经典例题,可以看一下我写的blogblog:树中点对距离。在对一棵子树计算答案的时候,算出重心并求出树中所有的点到重心的距

XianHaoMing的博客 2335

浅谈点分治(JZOJ4715)

前不久搞了搞点分治,一直没有打模板练习,昨晚练习了一下(POJ1741),因为一个初始值赋成0x3f调了半小时,事实告诉我们,随手赋值0x3f3f3f3f谈一下点分治是啥吧,点分治呢,其实个人感觉是对于求解树上路径问题的暴力优化: 对于一棵无根树,求解关于它上面路径的权值等问题均可以用点分治解决,但是需要有很好的理解及代码,分析能力。 点分治: 对于一棵无根树首先找到一个点作为它的根,因

XLno_name的博客 560

【JZOJ5055】【GDOI2017模拟二试4.12】树上路径

Description给定一颗n个结点的无根树,树上的每个点有一个非负整数点权,定义一条路径的价值为路径上的点权和-路径的点权最大值。 给定参数p,我们想知道,有多少不同的树上简单路径,满足它的价值恰好是p的倍数。 注意:单点算作一个路径;u ≠ v时,(u,v)和(v,u)只算一次。Data Constraint对所有测试点,我们有: n≤10^5,p≤10^7,val_i≤10^9 So

dance in th dark的博客 889

NOIP模拟赛2 B题 (点分治)

题目描述:给出一棵树,求出最小的kkk,使得,且在树中存在路径PPP,使得k≥Sk ≥ Sk≥S 且k≤Ek ≤ Ek≤E. (kkk为路径PPP上的边的权值和) 很显然的点分治的题目。 按照点分治的套路, 1.1.1.先对这棵树进行重心划分 2.2.2.统计过重心的点的路径 3.3.3.递归求解 在统计路径的时候,排序后枚举加lowerboundlowerboundlowerbound,同时为避免统计到同一子树的(以当前划分的重心为根),可以每次统计一颗子树内的路径长度,就与已遍历子树进行答案统计,时间复

Soap__的博客 258

【jzoj5055】【GDOI2017模拟二试4.12】【树上路径】【点分治】

题目大意给定一颗n个结点的无根树,树上的每个点有一个非负整数点权,定义一条路径的价值为路径上的点权和-路径的点权最大值。给定参数p,我们想知道,有多少不同的树上简单路径,满足它的价值恰好是p的倍数。注意:单点算作一个路径;u ≠ v时,(u,v)和(v,u)只算一次。解题思路直接点分即可。code#include<set> #include<cmath> #include<cstdio> #incl

inklutcuah’s blog 1055
上一篇: 【JZOJ 4714】公约数
下一篇: 【JZOJ 3051】单元格
HOWARLI
博客等级 码龄11年 109粉丝 378原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值