BZOJ2157 旅游

高通9008模式隐藏技巧:不拆机用ADB命令+Diag协议进入EDL 本文深入解析高通EDL模式(紧急下载模式)的技术原理与实战应用,详细介绍了通过ADB命令和Diag协议无需拆机进入EDL的方法。涵盖硬件/软件触发方案、跨平台工具配置、Firehose协议解析及设备救砖流程,为开发者提供从基础到进阶的完整指南。 阅读详情

Description

Ray 乐忠于旅游,这次他来到了T 城。T 城是一个水上城市,一共有 N 个景点,有些景点之间会用一座桥连接。为了方便游客到达每个景点但又为了节约成本,T 城的任意两个景点之间有且只有一条路径。换句话说, T 城中只有N − 1 座桥。Ray 发现,有些桥上可以看到美丽的景色,让人心情愉悦,但有些桥狭窄泥泞,令人烦躁。于是,他给每座桥定义一个愉悦度w,也就是说,Ray 经过这座桥会增加w 的愉悦度,这或许是正的也可能是负的。有时,Ray 看待同一座桥的心情也会发生改变。现在,Ray 想让你帮他计算从u 景点到v 景点能获得的总愉悦度。有时,他还想知道某段路上最美丽的桥所提供的最大愉悦度,或是某段路上最糟糕的一座桥提供的最低愉悦度。

Input

输入的第一行包含一个整数N,表示T 城中的景点个数。景点编号为 0...N − 1。
接下来N − 1 行,每行三个整数u、v 和w,表示有一条u 到v,使 Ray 愉悦度增加w 的桥。桥的编号为1...N − 1。|w| <= 1000。
输入的第N + 1 行包含一个整数M,表示Ray 的操作数目。
接下来有M 行,每行描述了一个操作,操作有如下五种形式: C i w,表示Ray 对于经过第i 座桥的愉悦度变成了w。 N u v,表示Ray 对于经过景点u 到v 的路径上的每一座桥的愉悦度都变成原来的相反数。 SUM u v,表示询问从景点u 到v 所获得的总愉悦度。 MAX u v,表示询问从景点u 到v 的路径上的所有桥中某一座桥所提供的最大愉悦度。 MIN u v,表示询问从景点u 到v 的路径上的所有桥中某一座桥所提供的最小愉悦度。测试数据保证,任意时刻,Ray 对于经过每一座桥的愉悦度的绝对值小于等于1000。

Output

对于每一个询问(操作S、MAX 和MIN),输出答案。

Sample Input

3

0 1 1

1 2 2

8

SUM 0 2

MAX 0 2

N 0 1

SUM 0 2

MIN 0 2

C 1 3

SUM 0 2

MAX 0 2

Sample Output

3

2

1

-1

5

3

LCT维护链上信息,裸题。

#include<bits/stdc++.h>
using namespace std;
#define Inc(i,L,r) for(register int i=(L);i<=(r);++i)
const int N = 4e4+10,inf = 0x3f3f3f3f;
int n,m;
struct Splay{
	int p[N],ch[N][2];
	bool rev[N],opp[N];
	int w[N],Max[N],Min[N],Sum[N];
	#define Ls(v) ch[v][0]
	#define rs(v) ch[v][1]
	inline bool is_root(int x){
		return (Ls(p[x])^x)&&(rs(p[x])^x);
	}
	inline void maintain(int x){
		Sum[x]=Sum[Ls(x)]+Sum[rs(x)]+w[x];
		Max[x]=max(Max[Ls(x)],Max[rs(x)]);
		Min[x]=min(Min[Ls(x)],Min[rs(x)]);
		if(x>n)Max[x]=max(Max[x],w[x]),Min[x]=min(Min[x],w[x]);
	}
	inline void rot(int x){
		int f=p[x],gf=p[f],type=rs(f)==x,son=ch[x][!type];
		if(!is_root(f))ch[gf][rs(gf)==f]=x;p[x]=gf;
		ch[p[son]=f][type]=son,maintain(f);
		ch[p[f]=x][!type]=f,maintain(x);
	}
	inline void reverse(int x){
		swap(Max[x],Min[x]);
		Max[x]=-Max[x];
		Min[x]=-Min[x];
		Sum[x]=-Sum[x];
		w[x]=-w[x];
		opp[x]^=1;
	}
	inline void pushdown(int x){
		if(opp[x]){
			if(Ls(x))reverse(Ls(x));
			if(rs(x))reverse(rs(x));
			opp[x]=0;
		}
		if(rev[x]){
			rev[Ls(x)]^=1,rev[rs(x)]^=1;
			swap(Ls(x),rs(x));
			rev[x]=0;
		}
	}
	int top,stk[N];
	inline void splay(int x){
		stk[++top]=x;
		if(!is_root(x))for(int i=x;!is_root(i);i=p[i])stk[++top]=p[i];
		while(top)pushdown(stk[top--]);
		while(!is_root(x)){
			if(is_root(p[x]))return rot(x),void();
			if((rs(p[p[x]])==p[x])==(rs(p[x])==x))rot(p[x]);
			rot(x);
		}
	}
	inline void reset(int x,int v){w[x]=Max[x]=Min[x]=Sum[x]=v;}
	inline void init(int x){w[x]=Sum[x]=0;Max[x]=-inf;Min[x]=inf;}
};
struct LCT{
	Splay sp;
	inline void access(int x){
		for(int lastx=0;x;lastx=x,x=sp.p[x])
			sp.splay(x),sp.rs(x)=lastx,sp.maintain(x);
	}
	inline void make_root(int x){
		access(x),sp.splay(x),sp.rev[x]^=1;
	}
	inline void link(int x,int y){
		make_root(x),sp.p[x]=y;
	}
	inline void split(int x,int y){
		make_root(x),access(y),sp.splay(y);
	}
}lct;
inline void init(){
	scanf("%d",&n);
	Inc(i,0,2*n)lct.sp.init(i);
	Inc(i,1,n-1){
		int x,y,z;scanf("%d%d%d",&x,&y,&z);
		lct.sp.reset(n+i,z);
		lct.link(x+1,n+i),lct.link(n+i,y+1);
	}
}
inline void solv(){
	scanf("%d",&m);
	while(m--){
		char op[10];int x,y;
		scanf("%s%d%d",op+1,&x,&y);
		switch(op[1]){
			case'S':lct.split(x+1,y+1);cout<<lct.sp.Sum[y+1]<<"\n";break;
			case'M':lct.split(x+1,y+1);cout<<((op[2]=='A')?lct.sp.Max[y+1]:lct.sp.Min[y+1])<<"\n";break;
			case'N':lct.split(x+1,y+1);lct.sp.reverse(y+1);break;
			case'C':lct.sp.splay(n+x);lct.sp.w[n+x]=y;lct.access(n+x);break;
		}
	}
}
int main(){
	init();
	solv();
	return 0;
}

 

BZOJ 2157 「国家集训队」旅游(树链剖分,线段树,边权转点权)【BZOJ计划】 【BZOJ修复计划 #20】BZOJ 2157 旅游 【国家集训队2011】 阅读详情

相关推荐

高通开发板刷机模式---EDL模式修复(二)

■ 如果板子Flash上的第一个块是空白的,则当板子通电时,板子可以直接进入EDL模式。■ 如果板子的boot分区在更新的时候出现了问题,导致板子变成了转头,■ 如果板子Flash上的第一个块不是空白的,则板子在上电时需要返工才能进入EDL模式。EDL 的启动模式返work方法在硬件电路图引导模块中可用。例如 IP5322 ,GPIO13 拉高,进入usb boot 模式。

redparrot2008的博客 3387

android的刷机方式

刷机攻略,回归一下。 主要刷机方式,EDL(紧急下载,USB端口9008),fastboot工具线刷,OTA升级(全包/差分升级,nonAB系统与AB系统升级)。这个玩android系统的基本都知道,还是列个表: 环境 进入方式 工具 EDL模式 ...

鹅鹅鹅的博客 1万+

避开PSRR仿真三大坑:用Cadence psspxf分析分频器时,这些设置错了白忙活

本文深入探讨了使用Cadence psspxf工具进行分频器PSRR仿真时常见的三大技术陷阱,包括扰动信号参数设置、收敛性优化和后处理信号提取。通过详细的参数推荐和实战技巧,帮助工程师避免仿真误差,提升PSRR分析效率与准确性,特别适用于16分频器等数字-模拟混合电路设计。

weixin_29258297的博客 301

高通处理器的安卓手机在EDL(9006,9008,9025)紧急刷机模式下手动单独刷新任意分区

1.1 EDL(9006,9008,9025)紧急刷机模式介绍 此模式为高通处理器独有。联发科的叫AP模式,海思的叫COM1.0模式。 1.2 EDL模式可以做什么? 进入此模式后可以无视BL锁刷新任意分区。或者解BL锁,ROOT等等高级骚操作。老司机秒懂。 1.3 进入方法 各个机型进入方法不一样。有的可能是组合按键长按,有的是拆机短接TP点,有的是软件命令控制。这里不展开描述。

llq520的专栏 2万+

半导体制造中的通孔缺陷与冗余通孔技术解析

通孔(Via)是半导体制造中连接不同金属层的关键结构,其可靠性直接影响芯片良率。随着工艺节点演进至28nm及更先进制程,通孔缺陷导致的良率损失日益显著,主要表现为完全开路和高阻态两种失效模式。冗余通孔技术通过在关键位置增加备用连接,可有效提升芯片可靠性,其实现涉及物理冗余与电气冗余两种方案。该技术在7nm/5nm工艺中已证明可将通孔相关缺陷率降低10-100倍,但面临设计规则复杂性、规模处理效率和动态合规验证等工业化挑战。智能双切通孔插入流程通过动态DRC规则解析、奇偶层级并行处理和增量式验证等创新方法,显

weixin_35982453的博客 383

基于pytest+Allure+Python+CANoe的汽车诊断自动化测试框架搭建实战

自动化测试是提升软件质量和研发效率的关键技术,其核心原理是通过脚本模拟人工操作,实现测试用例的自动执行与结果验证。在汽车电子领域,诊断服务测试是确保车辆ECU(电子控制单元)功能正常的重要环节,传统手动测试在面对海量用例和频繁回归时效率低下。本文聚焦于如何利用Python的pytest测试框架、Allure报告工具以及Excel数据驱动,构建一个与Vector CANoe仿真测试环境深度集成的自动化测试解决方案。该方案通过Python调用CANoe的COM接口,实现了诊断报文的自动发送与响应验证,并结合Al

weixin_30384217的博客 680

android edl模式,重磅干货!高通9008模式与数据提取

原标题:重磅干货!高通9008模式与数据提取上一期的镜像基础知识更完后,本期我们上高级镜像干货!大家还记得Android手工镜像的方法吗?我们有读者读完之后提出了新的问题,刚好和Wendy最近计划的本文吻合~ 谢谢这位热心读者,本期我们就来解决这个问题!正文本文讲述的就是针对高通平台智能手机的镜像方法,不需要root,且免解BL锁。采用高通芯片的智能手机,一旦变砖了,通常可以在9008模式进行救砖...

weixin_39928686的博客 1万+

开源分享:苹果群控手机源代码解析与实战

本文介绍了苹果设备群控的基本原理和实现方法,重点解析了基于Python+Appium的群控系统构建。主要内容包括:1)设备连接管理技术(USB/Wi-Fi);2)自动化控制方式(WDA/AppleScript/Appium);3)实战演示了通过Python脚本实现多设备同时控制,涵盖环境配置、代码解析和功能说明;4)提出了多线程、图像识别等优化方向。文章为开发者提供了快速上手的群控方案,适用于自动化测试、批量管理等场景,并推荐了相关开源项目参考。

2403_88540309的博客 1347

bzoj2157旅游

bzoj2157旅游 题意: 给定有权树,支持单边权修改,路径边权取相反数,路径边权求和,路径边权求最大最小值。 题解: 用link-cut tree link-cut tree与树链剖分有些类似,都是用某种数据结构维护树链。但也有很大差异:树链剖分是依据子树节点数确定轻重边,一经确定,不能更改,所以用相对静态的线段树维护,常数也较小。而link-cut tree是用来求...

weixin_34383618的博客 78

光栅衍射有入射角时_衍射型多焦点人工晶体光学原理

多焦点人工晶体如何把光线分成多个焦点的?这个问题大部分专业书只是蜻蜓点水,并没有讲明白。希此文粗浅的解释,能帮您加深理解,请多指正。接下来,我将按照一下历史发展的顺序讲解一下:光的认识、菲涅尔灯塔(菲涅尔透镜)、菲涅尔波带盘(半波带盘)、多焦点人工晶体。一:首先复习一下光的认识历史。我们现在都知道光是一种电磁波,具有波粒二相性,但是认识光的本质也经历非常曲折漫长的过程。牛顿时代的几何光...

weixin_28963467的博客 2352

YOLO系列专栏(六):YOLO26热力图可视化 | 解析模型推理逻辑,定位检测关键区域

YOLO26作为新一代目标检测模型,其核心优势是高效的特征提取和精准的目标定位,但模型内部的推理过程的“黑盒”特性,给我们的优化带来了很大困扰:❌ 检测精度低:不知道是模型没学到关键特征,还是特征提取不充分;❌ 出现误检/漏检:无法定位问题根源——是锚框不合适?还是特征图未捕捉到目标?❌ 模型优化盲目:调参、修改网络结构全靠“猜”,缺乏针对性;❌ 难以解释模型行为:实际项目中,需要说明模型“为什么检测到这个目标”,尤其是医疗、工业等对可解释性要求高的场景。而热力图可视化。

qq_36130719的博客 736

【BZOJ2157】旅游 树链剖分+线段树

【BZOJ2157】旅游 Description Ray 乐忠于旅游,这次他来到了T 城。T 城是一个水上城市,一共有 N 个景点,有些景点之间会用一座桥连接。为了方便游客到达每个景点但又为了节约成本,T 城的任意两个景点之间有且只有一条路径。换句话说, T 城中只有N − 1 座桥。Ray 发现,有些桥上可以看到美丽的景色,让人心情愉悦,但有些桥狭窄泥泞,令人烦躁。于是,他给每座桥定义一...

weixin_30825199的博客 69

华为OD面试手撕真题 - 最大数

华为OD面试手撕真题 最大的数 提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解

qq_45776114的博客 342

BZOJ 2157 旅游 树链剖分

题目大意:维护一棵树,每条边有边权,支持下列操作: 1.修改某条边的边权 2.将某条路经上的边权反转 3.询问某条路经上的和 4.询问某条路经上的最大值 5.询问某条路经上的最小值 裸链剖怎么这么多- - 边权的处理方式是把边权放到两端点中深度较大的那个里 反转就把和取反,最大最小值交换后取反就行了 为何这数据范围给我一种“暴力MS能艹过去?”的错觉- - #include

世界 2580

【Altium designer】如何添加过孔阵列

按下图1指示,执行【Tool】菜单栏下【Via Stitching/Shielding】选项卡中的【Add Stitching to Net...】选项 图1 “添加过孔阵列”选项 点击【Add Stitching to Net...】选项后,会跳出一个窗口,让我们设置过孔阵列的参数信息,如下图2所示。 图2 过孔阵列参数设置 过孔阵列区域:勾选该选项框,即可绘制多边形区域; 过孔内径与焊盘直径:比如内径 【Hole Size】设为12mil,焊盘直径【Diameter】设为24mil; .

夜半少年的博客 2万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Bzoj2157 旅游

Time Limit:10 SecMemory Limit:259 MBSubmit:1488Solved:670 Description Ray 乐忠于旅游,这次他来到了T 城。T 城是一个水上城市,一共有 N 个景点,有些景点之间会用一座桥连接。为了方便游客到达每个景点但又为了节约成本,T 城的任意两个景点之间有且只有一条路径。换句话说, T 城中只有N − ...

dezhen7015的博客 153

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

POJ 3237 Tree /BZOJ 2157旅游 -- 树链剖分边权处理+取反

类似SPOJ QTREE模板题,还是要注意跳过LCA!!!(因为用最深的点权维护边权,LCA其实是上一个点的边权,不管update还是query) 只不过多了个取相反数操作 关于区间取相反数,如果是维护区间和,就加个负号;但如果是维护最大值,应该最大值最小值互换。 注释部分,表示按位取反如何维护最值(与本题无关) ①POJ 3237 Tree #include <stdio...

zjyang12345的博客 282

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

[BZOJ 2157]旅游

题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2157 题目描述 Ray 乐忠于旅游,这次他来到了T 城。T 城是一个水上城市,一共有 NNN 个景点,有些景点之间会用一座桥连接。为了方便游客到达每个景点但又为了节约成本,T 城的任意两个景点之间有且只有一条路径。换句话说, T 城中只有N−1N − 1N−1 座桥。Ray 发现,有些桥...

asdkjc的博客 135

【BZOJ】【2157】旅游

LCT   直到动手写拆边为点的时候才发现根本不会写……去orz了一下Hzwer(话说这题应该也用不着LCT吧……下次再换种姿势写一遍好了) 1 /************************************************************** 2 Problem: 2157 3 User: Tunix 4 La...

weixin_30760895的博客 139

[BZOJ2157]旅游

这种题感觉LCT比树链剖分好写… 依旧SB了一些地方: 1.这题由于有取反标记的存在,update一个节点的时候它的子节点可能不是真实值!!!所以要先clear它的子节点!!! 2.splay()又有一些地方手滑了,下次一定要注意检查splay(). 3.对于树中不表示边的节点,要注意不能让它的点权影响到更新,同时NIL->mx=-INF,NIL->mn=INF即可保证维护不出错(多想想).

Zvezda_的博客 694

洛谷P1505 [国家集训队]旅游(BZOJ2157)

树链剖分 洛谷题目传送门 BZOJ题目传送门 操作有点多的裸树剖。套路下放边权后就是打板子。注意操作的时候不要包括LCA。 代码: #include&lt;cctype&gt; #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;algorithm&gt; #define N 20005 #define F inline ...

forezxl的博客 455

bzoj 2157 旅游 lct

2157: 旅游 Time Limit:10 SecMemory Limit:259 MB Submit:2709Solved:1143 [Submit][Status][Discuss] Description Ray 乐忠于旅游,这次他来到了T 城。T 城是一个水上城市,一共有 N 个景点,有些景点之间会用一座桥连接。为了方便游客到达每个景点但又为了节约成本,T 城的任意...

KIDGIN7439的专栏 279

【bzoj2157】旅游

DescriptionRay 乐忠于旅游,这次他来到了T 城。T 城是一个水上城市,一共有 N 个景点,有些景点之间会用一座桥连接。为了方便游客到达每个景点但又为了节约成本,T 城的任意两个景点之间有且只有一条路径。换句话说, T 城中只有N − 1 座桥。Ray 发现,有些桥上可以看到美丽的景色,让人心情愉悦,但有些桥狭窄泥泞,令人烦躁。于是,他给每座桥定义一个愉悦度w,也就是说,Ray 经过这座

wang_sj的博客 356
上一篇: 完成工作
下一篇: BZOJ3282 Tree
DancingZ
博客等级 码龄9年 10粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值