Query on a tree SPOJ - QTREE 树链剖分模板题

《寻秦OL》.ani动画逆向解析:二进制结构与Unity重实现 动画文件格式是游戏资源逆向的核心入口,其本质是一组按特定规则组织的二进制数据流。理解魔数识别、字节序、字段对齐与差分编码等底层原理,是解析非标准格式的关键前提。技术价值在于绕过黑盒协议,直接从静态客户端提取可验证的原始语义;典型应用场景包括老游戏复刻、美术资产抢救、引擎跨平台迁移及教学级逆向训练。本文以《寻秦OL》的`.ani`文件为实例,深入剖析其C风格结构布局、GB2312中文命名、16位定点数旋转表示及帧主序差分存储机制,并基于C#在Unity中完成从字节流到AnimationClip的端到端重建,覆 阅读详情

https://vjudge.net/contest/54065#problem/A

**题意:给定一棵树,告诉了每条边的权值,然后给出两种操作:

(1)把第i条边的权值改为val

(2)询问a,b路径上权值最大的边**

当做模板,可是TLE了,可能时代久远,现在不能这样的3s多了。。
可以参考http://blog.youkuaiyun.com/ACdreamers/article/details/10639685

int is[N];
int fst[N],nxt[M],to[M],cost[M],e,val[N],w[N];
int fa[N],dep[N],sz[N],son[N];
int tid[N],top[N];
bool vis[N];
int label,n;
void init(){
    mem(fst,-1);
    e=0;
}
void add(int u,int v,int c){
    to[e]=v,nxt[e]=fst[u];cost[e]=c;fst[u]=e++;
}
void dfs(int u,int p){
    fa[u]=p;
    sz[u]=1;
    for(int i=fst[u];~i;i=nxt[i]){
        int v=to[i],c=cost[i];
        if(v==p)continue;
        is[i>>1]=v;
        dep[v]=dep[u]+1;
        val[v]=c;
        dfs(v,u);
        sz[u]+=sz[v];
        if(sz[son[u]]<sz[v]){
            son[u]=v;
        }
    }
}
void dfs2(int u,int t){
    vis[u]=1;
    top[u]=t;
    tid[u]=++label;
    w[label]=val[u];
    if(son[u])dfs2(son[u],t);
    for(int i=fst[u];~i;i=nxt[i]){
        int v=to[i];
        if(!vis[v])dfs(v,v);
    }
}
void cut(){
    dep[1]=sz[0]=0;
    mem(son,0);
    dfs(1,-1);
    mem(vis,0);
    label=0;
    dfs2(1,1);
}
int mx[N<<2];
void build(int ll,int rr,int i){
    if(ll==rr){
        mx[i]=w[ll];return;
    }
    build(ll,md,ls),build(md+1,rr,rs);
    mx[i]=max(mx[ls],mx[rs]);
}
void update(int x,int v,int ll,int rr,int i){
    if(ll==rr){
        mx[i]=v;return ;
    }
    if(x<=md)update(x,v,ll,md,ls);
    else update(x,v,md+1,rr,rs);
    mx[i]=max(mx[ls],mx[rs]);
}
int query(int l,int r,int ll,int rr,int i){
    if(ll==l&&rr==r)return mx[i];
    if(r<=md)
    return query(l,r,ll,md,ls);
    if(l>md)
    return query(l,r,md+1,rr,rs);
    return max(query(l,md,ll,md,ls),query(md+1,r,md+1,rr,rs));
}
int calc(int x,int y){
    int ret=-inf;
    while(top[x]!=top[y]){
        if(dep[top[x]]>dep[top[y]])swap(x,y);
        ret=max(ret,query(tid[top[y]],tid[y],1,n,1));
        y=fa[top[y]];
    }
    if(x!=y){
        if(dep[x]>dep[y])swap(x,y);
        ret=max(ret,query(tid[x]+1,tid[y],1,n,1));
    }
    return ret;
}
int main(){
    int cas;
    sf("%d",&cas);
    while(cas--){
        sf("%d",&n);
        init();
        for(int i=1;i<=n-1;++i){
            int u,v,c;sf("%d%d%d",&u,&v,&c);
            add(u,v,c);add(v,u,c);
        }
        cut();
        build(1,n,1);
        while(1){
            char s[10];sf("%s",s);
            if(s[0]=='Q'){
                int u,v;sf("%d%d",&u,&v);
                pf("%d\n",calc(u,v));
            }
            else if(s[0]=='C'){
                int a,b;sf("%d%d",&a,&b);
                update(tid[is[a-1]],b,1,n,1);
            }
            else break;
        }
    }
}
7、CUDA 软件架构与开发工具详解 本文深入探讨了CUDA的软件架构与核心开发工具,涵盖CUDA数组与纹理、表面引用、图形互操作性机制,以及CUDA运行时与驱动程序API的功能对比。详细解析了nvcc编译器的使用方法、编译轨迹与代码生成选项,并结合实际示例说明其应用。文章旨在帮助开发者理解不同技术的选择依据,合理利用CUDA工具链,提升GPU计算性能,适用于从入门到进阶的CUDA开发人员参考。 阅读详情

相关推荐

Query on a tree SPOJ - QTREE(树链剖分)

传送门 题意:给定一棵树,告诉了每条边的权值,然后给出两种操作: (1)把第i条边的权值改为val (2)询问a,b路径上权值最大的边 假期之后的第一篇题解,只学习了一种新的数据结构,树链剖分,此题为入门题,这个我算是学习的最晚的一个人了。这个有种调用了线段的API的感觉#include<cstdio> #include<cstring> #include<algorithm> #inclu

Coldfresh的博客 407

ROS新手必看:5分钟搞定URDF小车建模(附Rviz可视化调试技巧)

本文为ROS新手提供了快速构建URDF机器人模型的实战指南。通过一个完整的两轮差速小车建模案例,详细解析了URDF的核心语法、Rviz可视化调试技巧以及常见问题排查方法,帮助初学者快速掌握ROS机器人建模与可视化调试的核心技能。

weixin_29079643的博客 249

SPOJ375(树链剖分)

题目:Query on a tree   题意:给定一棵树,告诉了每条边的权值,然后给出两种操作: (1)把第i条边的权值改为val (2)询问a,b路径上权值最大的边   分析:本题与HDU3966差不多,区别就是:HDU3966是告诉树中点权的值,这里是边权。 所以我们可以转化,用边的孩子节点来表示该边。 #include #include #include #in

ACdreamer 3555

浊音/清音/爆破音的时域及频域特性

第一周作业 浊音/清音/爆破音的时域及频域特性 思路:使用Audacity进行录制,时域部分将音频放大观察波形规律,频域部分生成并进行频谱分析。 (1)浊音U 时域分析: 时域表现为短周期性,波形比较规律。 频域分析: 频域上表现为频率集中在低频区域,共振峰较为明显,短时能量较高。 (2)清音S 时域分析: 时域波形没有周期性,整体振幅小于浊音。 频域分析: 频域波形平缓,无共振峰,能量比较集中。 (3)爆破音t 时域分析: 脉冲波,更为尖锐,整体上振幅降低。 频域分析: 没有像浊音一样的共振

Leylaaaa的博客 1228

SAP-ABAP:SAP采购业务核心表关联关系详解

MM(核心)、FI(财务)、SD(计划协议):PR → PO → GR → MIRO → FI过账。

baidu_35680696的博客 930

查询树的路径上边权的极值的简便方法

这种题我都是用树链剖分做的,没想到还有这么简单的方法,ORZ一下! 转自:http://blog.sina.com.cn/s/blog_51cea4040100ss3n.html 给出一棵树,每条边有一边权。 对于任意给定的两点,求,此两点的最短路径上,边权的最大值。   对于下图: 蓝圈中任意一点与红圈中任意一点的路径上的最大边必定

努力奋斗才能梦想成真 2221

福建公共资源交易平台 portal-sign与响应Data解密逆向实录

本文分析了福建公共资源交易电子公共服务平台的接口加密机制。通过抓包和代码分析,发现请求头中的portal-sign由MD5算法生成,包含固定秘钥和排序后的参数拼接。响应数据采用AES-256-CBC加密,需使用特定Key和IV解密。文章详细介绍了签名生成规则、参数处理流程及加密常量定位方法,为接口对接提供了技术参考。整个过程展示了如何通过逆向工程还原前端加密逻辑,最终实现脱离浏览器环境的纯协议调用。

自成背后的博客 1157

【Codeforces Round 364 (Div 2)E】【树上路径 贪心】Connecting Universities 树上2k个点配对使得路径之和尽可能大

E.Connecting Universities time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standard output Treeland is a country in which th

snowy_smile的博客 1575

【WRF模拟】土地利用类型的确定:最大覆盖法/瓦片法

土地利用类型的确定:最大覆盖法/瓦片法

WW、forever的博客 1529

调用魔搭API出现Please bind your Alibaba Cloud account before use的解决方案

本文主要介绍了调用魔搭API出现Please bind your Alibaba Cloud account before use解决方案,希望能对使用大模型的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 3万+

【树链剖分模板】【SPOJ 375】 Query on a tree

树链剖分模板~ 【SPOJ 375】 Query on a tree

Regina8023 1536

华为 MetaERP 总账模块依托 “交易即核算” 的事件驱动架构,与 Oracle EBS 相比,更强调业务事件自动触发财务动作、实时数据同步和智能规则引擎,实现业务与财务的深度融合

华为MetaERP总账模块采用"交易即核算"架构,相比Oracle EBS实现了三大突破:1)业务事件自动触发财务动作,如采购收货自动生成暂估凭证;2)业务财务数据实时同步,支持即时分析;3)内置智能规则引擎,实现自动匹配、核销和结转。该模块覆盖采购、销售、资产、薪酬等全业务场景,支持多维核算和关联交易自动抵消,显著提升核算效率与准确性。其中采购暂估、销售结转等场景实现全自动化处理,较EBS减少80%手工操作。

金牌架构师 224

SPOJ - QTREE Query on a tree 树链剖分模板题

传送门:SPOJ - QTREE 题意:给出一棵树,和两种操作: 1.把第i条边的权值改成ti。 2.询问a节点到b节点之间的路径中的最大边权值。 思路:树链剖分裸题。 树链剖分学习:点击打开链接 个人理解:树链剖分有点类似于树的dfs序 + 线段树维护,不过是用各种数据结构去维护划分出来的边罢了。 代码: #include #define ll long long #define

WA是一笔财富 251

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

树链剖分模板题-SPOJ QTREE Query on a tree

You are given a tree (an acyclic undirected connected graph) with N nodes, and edges numbered 1, 2, 3…N-1.We will ask you to perfrom some instructions of the following form:CHANGE i ti : change the cos

Davenny:~我今天该吃点什么捏~ 416

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

SPOJ - QTREE Query on a tree树链剖分

SPOJ - QTREE Query on a tree树链剖分 You are given a tree (an acyclic undirected connected graph) with N nodes, and edges numbered 1, 2, 3…N-1. We will ask you to perfrom some instructions of the fol

weixin_40433319的博客 327

SPOJ QTREE 375. Query on a tree

SPOJ Problem Set (classical) 375. Query on a tree Problem code: QTREE You are given a tree (an acyclic undirected connected graph) with N nodes, and edges numbered 1, 2, 3...N-1. We wi

码代码的猿猿 1407

SPOJ QTREE - Query on a tree 【树链剖分】

QTREE - Query on a tree #number-theory You are given a tree (an acyclic undirected connected graph) with N nodes, and edges numbered 1, 2, 3...N-1. We will ask you to perfrom some instruc

世界很大 550

kyeremal-spoj375-Query on a tree-树链剖分

spoj275-Query on a tree 原题: QTREE - Query on a tree no tags  You are given a tree (an acyclic undirected connected graph) with N nodes, and edges numbered 1, 2, 3...N-1. We will ask

kyeremal的专栏 554

SPOJ QTREE3Query on a tree again!(树链剖分+树状数组+二分)

SPOJ QTREE3Query on a tree again!(树链剖分+树状数组+二分) 题目大意 现在有一颗树,其所有的节点都为白色。有两种操作 ,一是将一个节点的颜色进行反转(即黑色变成白色,白色变成黑色),一是查询1号节点和v节点路径上深度最小的那个黑色节点 解题思路 设黑色的节点权值为1,白色的节点权值为0,对树进行剖分后用树状数组维护前缀和。对于每次查询,先找出节点v在上升到1号节...

FLY_WHITE的博客 194

SPOJ 375. Query on a tree【树链剖分】

http://www.spoj.pl/problems/QTREE/ 给一颗树,每条边有一个权值。有两种操作:1、修改某条边的值;2、询问a、b两点路径上边权的最大值。 树链剖分。 #include #include #include #include #include #include using namespace std; const int maxn = 10010;

~飞呀,飞~ 1752

[spoj QTREE Query on a tree]树链剖分

[spoj QTREE Query on a tree]树链剖分题目链接:[spoj QTREE Query on a tree] 题意描述:给定一棵顶点数为N的带权树。有Q次操作,每次操作或者改变第ii条边的权值,或者查询顶点uu到vv的路径上面的最长边。 解题思路: 树链剖分的入门题。今天比较系统的学习了一下树链剖分。其实树链剖分就是将树上的边(点)映射到若干条连续的线段上。然后结

Fighting! 662

spoj375QTREE - Query on a tree(树链剖分)

题目链接 QTREE - Query on a tree #tree You are given a tree (an acyclic undirected connected graph) with N nodes, and edges numbered 1, 2, 3...N-1. We will ask you to perfrom some instru

fouzhe的博客 528

SPOJ - QTREE3Query on a tree again!——树链剖分

【题目描述】 SPOJ - QTREE3Query on a tree again! 【题目分析】 题目要求是输出从111到xxx的路径上遇到的第一个黑色的点。我们可以用树链剖分(不了解的同学请出门左拐,详见树链剖分入门) 我们用线段树维护每个区间第一次遇到黑点的位置,这样访问出的点同样是从1开始路径上的第一个点。因为我们总是从根节点1开始,我们在访问的时候从后往前每次访问重链时在线段树上都是一...

T_T233333333的博客 269

spoj375QTREE - Query on a tree【树链刨分】

QTREE - Query on a tree #number-theory You are given a tree (an acyclic undirected connected graph) with N nodes, and edges numbered 1, 2, 3...N-1. We will ask you to perfrom some instruc

走一步再走一步 809

SPOJ Query on a tree VI 树链剖分 树状数组

链接 https://vjudge.net/problem/SPOJ-QTREE6 题解 写得我脑壳疼,参考了不少题解,加深了对树剖的理解 用W[u]W[u]W[u]维护当前局势下,如果uuu为白色,uuu为根的子树中和uuu联通的个数 用B[u]B[u]B[u]维护当前局势下,如果uuu为黑色,uuu为根的子树中和uuu联通的个数 那么,对于询问操作,向上找到最远的与uuu同色的节点xxx,那么...

Spy97的博客 230

SPOJ---Query on a tree (树链剖分)

QTREE - Query on a tree #tree   You are given a tree (an acyclic undirected connected graph) with N nodes, and edges numbered 1, 2, 3...N-1. We will ask you to perfrom some instructions of the fol...

wust_cyh 470
上一篇: treap入门题。。
下一篇: bzoj 1036 [ZJOI2008] 树的统计 树链剖分模板题
sega_handsome
博客等级 码龄10年 7粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值