SPOJ913. Query on a tree II

vectorCast——Probe point 功能实现故障注入,局部变量打印,断点调试。 选择一个测试用例,选择coverage窗口进行查看。点击edit probe point,如图所示绿色的小圆圈。 选代码中选择需要打断点的地方进行点击。黑色的小圆点都可以选。 点击黑色小圆点,小圆点变绿,表示打断点成功。 此时就可以根据自己的需求在打断点的位置编写一些C语言的命令语句。 点击编译,成功会弹出窗口显示编译成功,失败会在下方报错error,并显示错误的原因。 点击应用保存,选择yes to all就可以了。 点击用例执行就可以看到打断点情况下的执行结果了。 阅读详情

题目大意:

询问一棵树上两点之间的边权和or第k个点是多少


link-cut tree

一开始把第k个点看成了第k大的边……吓了我一跳……

边权处理方法类似QTREE,再维护一个sum一个size就行了……

犯了脑残错误……调了半小时……


//Lib
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<ctime>

#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
#include<queue>
using namespace std;
//Macro
#define rep(i,a,b) for(int i=a,tt=b;i<=tt;++i)
#define rrep(i,a,b) for(int i=a,tt=b;i>=tt;--i)
#define erep(i,e,x) for(int i=x;i;i=e[i].next)
#define irep(i,x) for(__typedef(x.begin()) i=x.begin();i!=x.end();i++)
#define read() (strtol(ipos,&ipos,10))
#define sqr(x) ((x)*(x))
#define pb push_back
#define PS system("pause");
typedef long long ll;
typedef pair<int,int> pii;
const int oo=~0U>>1;
const double inf=1e20;
const double eps=1e-6;
string name="",in=".in",out=".out";
//Var
struct T
{
	int LC,RC,FA,SIZE,KEY,SUM;
	void set(){LC=RC=FA=SIZE=KEY=SUM=0;}
	#define lc(x) tree[x].LC
	#define rc(x) tree[x].RC
	#define fa(x) tree[x].FA
	#define size(x) tree[x].SIZE
	#define key(x) tree[x].KEY
	#define sum(x) tree[x].SUM
}tree[10008];
struct E
{
	int node,next,v;
}e[20008];
int n,m,T;
int h[10008],tot;
void add(int a,int b,int c){e[++tot].next=h[a];e[tot].node=b;e[tot].v=c;h[a]=tot;}
void DFS(int x,int fa)
{
	int y;
	erep(i,e,h[x])if((y=e[i].node)!=fa)
	{
		key(y)=e[i].v;fa(y)=x;DFS(y,x);
	}
}
void Update(int x)
{
	sum(x)=sum(lc(x))+sum(rc(x))+key(x);
	size(x)=size(lc(x))+size(rc(x))+1;
}
void Zig(int x)
{
	int y=fa(x),z=fa(y);
	if(lc(z)==y)lc(z)=x;else if(rc(z)==y)rc(z)=x;fa(x)=z;
	fa(rc(x))=y;lc(y)=rc(x);rc(x)=y;fa(y)=x;
	Update(y);
}
void Zag(int x)
{
	int y=fa(x),z=fa(y);
	if(lc(z)==y)lc(z)=x;else if(rc(z)==y)rc(z)=x;fa(x)=z;
	fa(lc(x))=y;rc(y)=lc(x);lc(x)=y;fa(y)=x;
	Update(y);
}
bool isRoot(int x){return lc(fa(x))!=x&&rc(fa(x))!=x;}
void Splay(int x)
{
	for(int y,z;!isRoot(x);)
	{
		y=fa(x);z=fa(y);
		if(isRoot(y))
			if(lc(y)==x)Zig(x);
			else Zag(x);
		else
			if(lc(z)==y)
				if(lc(y)==x)Zig(y),Zig(x);
				else Zag(x),Zig(x);
			else
				if(rc(y)==x)Zag(y),Zag(x);
				else Zig(x),Zag(x);
	}
	Update(x);
}
void Expose(int x){for(int y=0;x;x=fa(x)){Splay(x);rc(x)=y;Update(x);y=x;}}
int Find(int root,int k)
{
	while(1)
	{
		if(size(lc(root))+1==k)return root;
		if(size(lc(root))>=k)root=lc(root);
		else{k-=size(lc(root))+1;root=rc(root);}
	}
}
int Query(int x,int y,int z=0)
{
	Expose(y);
	for(y=0;x;x=fa(x))
	{
		Splay(x);if(!fa(x))break;rc(x)=y;Update(x);y=x;
	}
	if(z==0)return sum(rc(x))+sum(y);
	if(size(y)>=z)return Find(y,size(y)-z+1);
	else if(size(y)+1==z)return x;
	else {z-=size(y)+1;return Find(rc(x),z);}
}
void Init()
{
	scanf("%d",&n);int a,b,c;
	rep(i,1,n)h[i]=0,tree[i].set();tot=1;
	rep(i,1,n-1)
	{
		scanf("%d%d%d",&a,&b,&c);
		add(a,b,c),add(b,a,c);
	}
	DFS(1,0);
}
void Work()
{
	int a,b,c;char ch[10];
	while(1)
	{
		scanf("%s",ch);
		if(ch[1]=='O')return;
		scanf("%d%d",&a,&b);
		if(ch[1]=='I')printf("%d\n",Query(a,b));
		else scanf("%d",&c),printf("%d\n",Query(a,b,c));
	}
}
int main()
{
//	freopen((name+in).c_str(),"r",stdin);
//	freopen((name+out).c_str(),"w",stdout);
	for(scanf("%d",&T);T;T--)
	{
		Init();
		Work();
	}
	return 0;
}



企业第三方应用开发概述_测试第三方应用对接企业_以及如何使用流程_Demo演示---企业微信开发002 那么第三方公司开发了应用,做为服务提供商,如果,一个企业想使用这个应用,我开发的这个应用的话,那么。其实就是给我们的应用,安装一个,使用他的企业,分配一共企业 允许这个企业使用我们的应用的功能,可以看到其实就是多了运营规范,因为,第三方应用,其实就相当于,是第三方公司开发的,程序,首先来看一下。然后再来看,这里我们选择这个公司,其实可以,选择到具体的,部门,或者是。然后我们使用一个企业的管理员账号进行,扫码,来授权,这个应用,可以。其实就是指定,我这个企业中,哪个部门,或者哪些员工,可以使用。 阅读详情

相关推荐

通义千问对接FreeSWITCH实现大模型呼叫中心

通义千问是由阿里云开发的大规模语言模型,具备优秀的自然语言处理能力,支持文本生成、问答对话、摘要提取等多种任务。它不仅拥有丰富的知识储备,还能根据上下文灵活调整回答策略,适用于各种复杂场景下的自动化交流。FreeSWITCH是一个开源的多媒体通信服务器,提供了包括VoIP通话、即时消息传递在内的多种通信服务。它的模块化设计允许开发者根据实际需求定制功能,广泛应用于企业级通信系统中。通过集成通义千问,FreeSWITCH能够实现更智能的客户服务体验。

技术永不眠 Q:53195017 1498

SPOJ 913 Query on a tree II

spoj题面 Time limit 433 ms //spoj的时限都那么奇怪 Memory limit 1572864 kB //1.5个G,疯了 Code length Limit 15000 B OS Linux Language limit All except: ERL JS-RHINO NODEJS PERL6 VB.NET Source Special thanks to Iva...

weixin_30782331的博客 132

【博弈论基础与几大经典模型】古诺模型、斯塔克尔伯格模型Stackelberg Game、价格领导模型、Bertrand模型、Sweezy模型

博弈论中经典模型☞古诺模型、斯塔克尔伯格模型、价格领导模型等

学习记录 3万+

SPOJ913 Query on a tree II

Time Limit:433MS Memory Limit:1572864KB 64bit IO Format:%lld & %llu Description You are given a tree (an undirected acyclic connected graph) withNnodes, a...

dezhen7015的博客 111

手把手教你用nRF52832+RFX2401C设计远距离蓝牙模块(附完整原理图/PCB文件)

本文详细介绍了如何利用nRF52832 SoC与RFX2401C射频前端芯片设计远距离蓝牙模块,涵盖芯片选型、阻抗匹配、PCB布局等关键环节。通过实战指南和完整原理图/PCB文件,帮助工程师实现输出功率可达20dBm的蓝牙模块设计,适用于智能家居、运动追踪等物联网应用。

weixin_29214199的博客 287

apollo自动驾驶进阶学习之:如何实现施工路段限速绕行及其参数调试

首先需要理解Planning模块是基于Scenario、Stage、Task这样的层次来进行的,即场景->步骤->具体的决策方法。Apollo可以应对自动驾驶所面临的不同道路场景,都是通过Scenario统一注册与管理。Scenario通过一个有限状态机来判断选择当前行车场景,每个Scenario下又有多个Stage,指当前场景下需要执行的粗略步骤。.........

qq_41593516的博客 6598

SPOJ 913 Query on a tree II(动态树)

题目链接:http://www.spoj.com/problems/QTREE2/ 题意:给出一棵树,每条边有一个权值。两种操作:(1)询问某两个节点之间的距离;(2)询问x到y的路径上的第K个节点的编号。 思路:节点保存dis值、cnt。对于第二种询问,先access(x),然后y向上,父节点为空时,判断第K个节点在y的左侧右侧还是y本身。 struct node { ...

weixin_34348805的博客 205

【安全机制分析案例】从PDF预览页面提取原始PDF文件的方法原理与实践 篇二:基于致远互联(Seeyon)封装的SuwellLightRead技术

该HTML代码片段展示了致远OA协同办公系统的前端页面结构,包含多个CSS样式表和JavaScript文件的引用。页面设置了IE兼容模式,加载了全局环境变量、UI组件库和公告模块相关资源。代码中定义了系统路径、静态资源后缀等全局变量,并包含公告查看功能的相关配置参数。页面还引用了水印、文档处理、即时通讯等功能的JS文件,并设置了文件下载框架。整体呈现了一个典型的OA系统前端实现方案,包含浏览器兼容处理、资源加载和功能模块初始化等逻辑。

生活在别处 2074

【SPOJ913】Query on a tree II

题意: 给定一棵n个点的树,边具有边权。要求作以下操作: DIST a b 询问点a至点b路径上的边权之和 KTH a b k 询问点a至点b有向路径上的第k个点的编号 有多组测试数据,每组数据以DONE结尾。   解析:        树上倍增。   代码:   #include &lt;bits/stdc++.h&gt; using namespace std; cons...

ETO的博客 233

国科大学习资料--人工智能原理与算法-2020年期末考试题解析(学长整理)

国科大学习资料–人工智能原理与算法-2020年期末考试题解析 张文生老师主讲 试卷共有6道题,题目不难,希望大家能取得好的成绩。 3.9 传教士和野人问题。三个传教士和三个野人在河的一岸,有一条能载一个人或者两个人的船。请设法使所有人都渡到河的另一岸,要求在任何地方野人数都不能多于传教士的人数。这个问题在AI领域中很有名,是因为它是第一个从分析的观点探讨问题形式化的论文的主题(Amarel,1968)。 a. 请对该问题进行详细形式化,只描述确保该问题求解所必需的特性。画出完整的状态空间图。 b. 应用合适

无名何许人的博客 4787

AI问数,智慧赋能:基于大语言模型的数据播报员应用实践探索

AI问数技术正在改变企业与数据交互的方式,它以自然语言为桥梁,让数据不再是少数专家的专利,而是成为所有业务人员的决策伙伴。这不仅是技术的创新,更是管理理念的革新。在数字化转型的关键阶段,企业应积极拥抱AI问数技术,通过降低数据使用门槛、提升数据利用效率、释放数据潜在价值,实现真正的数据驱动决策,为企业的高质量发展注入源源不断的智慧动能。AI问数,正在开启一个数据普惠的新时代。

getusushu的博客 64

SPOJ 913 QTREE系列- Query on a tree II (倍增LCA)

题目地址:QTREE2 - Query on a tree II LCA学了离线与在线转RMQ方法后就去做这道题,于是想了好长时间也没想到怎么做。看了题解都是用的倍增LCA。。于是又去学了下倍增法求LCA,这才发现用倍增法做简直是水题。。。因为求路径的第k个点可以转化成求第k个父节点,然而倍增法的原理就是根据的父节点,于是这题就很容易解决了。。 求距离很好求。关键

scf0920 1074

深入浅出之ADown降采样模块(YOLO)

YOLOv9中的ADown模块是一种用于目标检测任务中的下采样操作的卷积块。在深度学习模型中,下采样(downsampling)是减少特征图空间维度的常用技术,它有助于模型在更高层次上捕捉图像的特征,同时减少计算量。ADown模块的设计旨在以一种高效且对性能影响较小的方式进行这一操作。

浩瀚之水的专栏 4173

【SPOJ】913 Query on a tree II QTREE系列之2【LCA】

传送门:【SPOJ】913 Query on a tree II 题目分析:

poursoul 1239

SAP B1中文培訓教材_SDK

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

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【SPOJ】913 Query on a tree II

1 #include<cstdio> 2 #include<cstring> 3 #include<queue> 4 #include<iostream> 5 #define MAXN 10010 6 #define MAXM 20010 7 using namespace std; 8 struct...

weixin_30512089的博客 77

IT运维实战:系统故障诊断与性能优化全攻略

系统故障诊断是IT运维中的核心技术,涉及网络、硬件、软件等多维度问题定位。通过分析系统日志、性能计数器和硬件状态等关键指标,运维人员可以快速定位故障根源。典型场景包括网络连接异常、CPU性能瓶颈、内存泄漏等,需要结合ping、tracert、性能监视器等工具进行分层诊断。在硬件层面,SMART检测和压力测试能有效预防存储设备和主板故障。对于软件冲突,依赖分析和注册表清理是常用解决方案。建立预防性维护体系和工具链(如Wireshark、HWMonitor)可显著提升系统稳定性,降低平均修复时间(MTTR)。本

weixin_34146805的博客 285

[SPOJ913]QTREE2 - Query on a tree II【倍增LCA】

题目描述 【传送门】 题目大意 给一棵树,有两种操作: 求(u,v)路径的距离。 求以u为起点,v为终点的第k的节点. 分析 比较简单的倍增LCA模板题。 首先对于第一问,我们只需要预处理出根节点到各个节点之间的距离,然后倍增LCA求解就可以了。 那么第二问我WA了6发,原来是眼瞎和手残打错了两个字符错掉了。 我们将问题分成3个部分: LCA是第k个 第k个在u到LCA的路径上 第...

weixin_30535043的博客 98

spoj 913 Query on a tree II 倍增

题意:给定一棵边带权树 定义两种询问 DIST a b: a b之间距离 KTH a b k: a b之间的路径的第k个数 1 #include<iostream> 2 #include<cstring> 3 #include<cmath> 4 #include<cstdio> 5 using namespace ...

weixin_30698297的博客 137

SPOJ 913 Query on a tree II ( 树链剖分 + 倍增 )

树链剖分 + 倍增

Muti-Agent 2719

LabVIEW振动信号积分处理与降噪实战:从加速度到位移

在机械振动测试与设备状态监测中,加速度、速度、位移之间的相互转换是分析设备健康状态的重要手段。积分运算作为核心数学工具,却会按1/ω规律放大低频噪声,使漂移和趋势项迅速淹没真实信号。因此,振动数据处理中的降噪设计成为决定积分结果是否可信的关键。利用合适的数字滤波器去除直流与超低频分量,合理选择频域积分或时域积分策略,配合趋势项去除与窗函数处理,能有效抑制噪声累积,获得稳定的速度与位移波形。这一技术广泛应用于旋转机械故障诊断、结构健康监测及现场动平衡等工程场景。在LabVIEW平台上,通过硬件抗混叠、高通滤波

weixin_34268843的博客 343

SPOJ 题目913QTREE2 - Query on a tree II(Link Cut Tree 查询路径第k个点)

QTREE2 - Query on a tree II no tags  You are given a tree (an undirected acyclic connected graph) with N nodes, and edges numbered 1, 2, 3...N-1. Each edge has an integer value assigned

Jogging_Clown 1725

寒假总结

寒假刷水记录…… bzoj1901: Zju2112 Dynamic Rankings 水题……暴力即可 http://ideone.com/nnjLb bzoj1207: [HNOI2004]打鼹鼠 DP,我一开始想的状态表示有3维,时间,x,y……然后发现完全没有必要,太稀疏了 用f[i]表示第i只老鼠的时刻即可,因为第i只老鼠的时候机器人要么空降,要么从别的老

OrpineX的专栏 4067

[JSOI2007]文本生成器

这道题是很裸的trie图(AC自动机) 王赟的论文里面讲过一道题,求长度为n的字符串中不出现给定字符串的方案数,跟这道题差不多 这道题dp方程多加一维,f[i][j][k]表示长度为i,trie图位置在j,是否经过了至少一个匹配串的方案数 trie图很久没写了……今天复习了一下…… 用的是未改进的trie图,因为字符集比较小…… PS:吐槽这题的数据很水……我在trie图

OrpineX的专栏 2429
上一篇: SPOJ375.QTREE
下一篇: SPOJ2798. Query on a tree again!
OrpineX
博客等级 码龄17年 16粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值