bzoj2594: [Wc2006]水管局长数据加强版

深入浅出ISP:用RKISP2.x Tuner工具理解AWB、AE、HDR等核心模块的实战调参 本文深入解析RKISP2.x Tuner工具在ISP图像处理中的实战应用,重点探讨AWB、AE、HDR等核心模块的调参技巧。通过环境搭建、调试工具使用和实际案例,帮助开发者掌握如何在不同光照条件下优化图像质量,实现精准的白平衡、曝光控制和动态范围处理。 阅读详情

题目大意:给定一个简单图,支持删边,每次询问两点间 最大边权值最小的路径。


思路:题目中权值在边上,而LCT维护的全值在点上,所以要先转化,对于连接x和y的第i条路径,把边变成第i+n个点,然后把权值放到边点上,所有真正的点权值赋为0,这也是维护边权的常用方法。接着就是一个性质:每次询问两点间 最大边权值最小的路径一定是在最小生成树上。具体证明可以自行百度或YY。然后我们就可以去维护最小生成树了,但是题目是删边,没法做啊....这时我们可以倒着做,离线处理,删边就成了加边。怎么用LCT维护呢?先跑一遍kruskal,因为题目保证任意时刻图是联通的,所以一定可以跑出一棵初始的最小生成树(其实跑出一部分也没有影响...只要没有环就可以用LCT了)。然后加边,对于要连接的两点x和y,找出加边前的路径,得出路径上最大边的编号,如果新边比最大边更优,就可以把最大边替换掉,然后这题就没有然后了...

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ls c[x][0]
#define rs c[x][1]
using namespace std;
const int maxm=1000010,maxq=100010,maxt=1500010;
int n,m,Q,f[maxt],tim;char ch;
struct edge{int u,v,w,id;bool d;}e[maxm];
struct qu{int f,x,y,ans,id;}q[maxm];
bool operator<(edge a,edge b){return a.u<b.u||(a.u==b.u&&a.v<b.v);}
void read(int &x){
	for (ch=getchar();!isdigit(ch);ch=getchar());
	for (x=0;isdigit(ch);ch=getchar()) x=x*10+ch-'0';
}

struct LCT{
	int fa[maxt],c[maxt][2],val[maxt],mx[maxt];bool rev[maxt];
	int which(int x){return c[fa[x]][1]==x;}
	bool isroot(int x){return c[fa[x]][0]!=x&&c[fa[x]][1]!=x;}	
	void update(int x){
		mx[x]=x;
		if (val[mx[ls]]>val[mx[x]]) mx[x]=mx[ls];
		if (val[mx[rs]]>val[mx[x]]) mx[x]=mx[rs];
	}
	void flip(int x){swap(ls,rs),rev[x]^=1;}
	void down(int x){if (rev[x]) flip(c[x][0]),flip(c[x][1]),rev[x]^=1;}
	void relax(int x){if (!isroot(x)) relax(fa[x]);down(x);}
	void rotate(int x){
		int y=fa[x],z=fa[y],nx=which(x),ny=which(y);
		fa[c[x][!nx]]=y,c[y][nx]=c[x][!nx];
		fa[x]=z;if (!isroot(y)) c[z][ny]=x;
		fa[y]=x,c[x][!nx]=y;update(y);
	}
	void splay(int x){
		relax(x);
		while (!isroot(x)){
			if (isroot(fa[x])) rotate(x);
			else if (which(x)==which(fa[x])) rotate(fa[x]),rotate(x);
			else rotate(x),rotate(x);
		}
		update(x);
	}
	void access(int x){for (int p=0;x;p=x,x=fa[x]) splay(x),fa[c[x][1]=p]=x,update(x);}
	void makeroot(int x){access(x),splay(x),flip(x);}
	void link(int a,int b){makeroot(a),fa[a]=b;}
	void cut(int a,int b){makeroot(a),access(b),splay(b),c[b][0]=fa[a]=0;}
	int query(int a,int b){makeroot(a),access(b),splay(b);return mx[b];}
}T;

int getfa(int x){return f[x]==x?x:f[x]=getfa(f[x]);}
int find(int u,int v){
	int l=1,r=m;
	while (l<=r){
		int mid=(l+r)>>1;
		if (e[mid].u<u||(e[mid].u==u&&e[mid].v<v)) l=mid+1;
		else if (e[mid].u==u&&e[mid].v==v) return mid;
		else r=mid-1;
	}
}
bool cmp(edge a,edge b){return a.w<b.w;}
bool cmp2(edge a,edge b){return a.id<b.id;}

void kruskal(){
	int tot=0;
	for (int i=1;i<=m;i++) 
		if (!e[i].d){
			int u=e[i].u,v=e[i].v;
			if (getfa(u)!=getfa(v)){
				f[getfa(u)]=getfa(v),T.link(u,i+n),T.link(i+n,v);
//				printf("MST%d %d %d %d\n",u,v,e[i].w,e[i].d);
				if (++tot==n-1) break;
			}
		}
}

int main(){
	scanf("%d%d%d",&n,&m,&Q);
	for (int i=1;i<=n;i++) f[i]=i;
	for (int i=1;i<=m;i++){
		read(e[i].u),read(e[i].v),read(e[i].w);
		if (e[i].u>e[i].v) swap(e[i].u,e[i].v);
	}
	sort(e+1,e+1+m,cmp);
	for (int i=1;i<=m;i++) e[i].id=i,T.val[n+i]=e[i].w,T.mx[n+i]=n+i;
	sort(e+1,e+1+m);
	for (int i=1;i<=Q;i++){
		read(q[i].f),read(q[i].x),read(q[i].y);
		if (q[i].f==2){
			if (q[i].x>q[i].y) swap(q[i].x,q[i].y);
			int t=find(q[i].x,q[i].y);
//			printf("que%d %d %d\n",t,q[i].x,q[i].y);
			e[t].d=1,q[i].id=e[t].id;
		}
	}
	sort(e+1,e+1+m,cmp2);
	kruskal();
	for (int i=Q;i;i--){
		if (q[i].f==1) q[i].ans=T.val[T.query(q[i].x,q[i].y)];
		else{
			int u=q[i].x,v=q[i].y,k=q[i].id,t=T.query(u,v);
//			printf("%d %d %d %d\n",k,e[k].v,e[k].w,T.val[t]);
			if (e[k].w<T.val[t]){
				T.cut(e[t-n].u,t),T.cut(e[t-n].v,t);
				T.link(u,k+n),T.link(v,k+n);
			}
		}
	}
	for (int i=1;i<=Q;i++) if (q[i].f==1) printf("%d\n",q[i].ans);
	return 0;
}

uniapp [安卓苹果App端] - 实现判断并开启消息通知/提示权限,监测通知权限未开启时弹框提示用户并引导用户跳转至设置界面,uniApp检查通知权限+提示是否打开+点击跳转设置(详细示例代码) uni-app判断有无通知权限,并进行设置,设置手机通知权限,开启通知权限,uni-app解决权限问题,uniapp 拉起授权(拒绝后重新开启权限)uniApp打包的手机app如果用户没开启通知权限、引导用户开启,uni-app动态打开应用通知权限,拒绝后跳转设置页面,uniapp获取通知栏权限,苹果ios系统打开通知权限,被拒绝怎么办,uniapp安卓判断通知权限,uniapp打包的APP引导用户打开手机通知权限,uniapp权限被拒绝,跳转手机设置页面 权限设置,IOS应用内跳转系统设置,uni-app 阅读详情

相关推荐

AWS RDS 介绍 三)创建 RDS 实例

AWS RDS 介绍 共分为 7 个部分, 其中 第 3部分重点介绍,如何创建一个RDS 实例。 三) AWS RDS 试用MySQL http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.MySQL.

XuYongshi02的专栏 7645

bzoj2594水管局长数据加强版题解

题目大意 给一张带权无向图,无重边和自环,有如下操作: 删除某条边,保证这条边在删除前一定存在,并且不破坏原图连通性; 询问两点之间所有路径中最小权值的最大值是多少; 题解 问题的答案显然在原图的最小生成树上,于是本题就变成了动态维护删边最小生成树。 然而LinkCutTree维护最小生成树时并不支持删边操作,所以要离线处理,先删掉该删掉的边,再求最小生成树,把所有操作倒过来用LCT维护。

t14t41t的专栏 2254

国产PHY芯片YT8512H替代LAN8742A的实战指南(STM32F407平台)

本文详细介绍了在STM32F407平台上,使用国产PHY芯片YT8512H替代LAN8742A的完整实战过程。文章深入剖析了硬件设计中的关键信号连接差异(如CRS_DV与RXDV复用)、时钟布线要点,并提供了软件驱动修改、PHY配置及调试排错的系统指南,旨在帮助工程师高效完成国产化替代,规避常见陷阱。

defi6farmer的博客 854

[BZOJ2594][Wc2006]水管局长数据加强版

艾玛这题卡了我一晚上…各种RE,WA,TLE,总结一下死因: splay()的清标记处写搓… 数组开小/开大(没看清范围)… 用map… 完蛋了完蛋了马上就要NOIP了还这种状态怎么办啊OLZ

Zvezda_的博客 919

UOS的ARM机编译QT5.14.2记录

我需要的qt版本是Qt5.14.2,所以选择编译Qt5.14.2源码;几个月前尝试了编译一次,当时编译过程中出现了报错,当时时间很紧最后安装的默认版本来使用,最近有时间重新进行了一次编译,历经3个星期(4G的内存)终于解决了各种坑,编译成功了,现在将编译过程中遇见的一些坑记录一下,方便日后能记得这一次可恶的编译过程,如有描述欠缺的地方,还希望各位大佬给点意见指导指导🙏。

NiF693zzz的博客 1617

从零开始:MTK ISP调试中的ImagiqSimulator实战指南

本文详细介绍了MTK ISP调试中ImagiqSimulator的实战应用,从环境准备、参数加载到核心模块调整,提供全面的调试流程指南。重点讲解了DM模块参数优化技巧和常见问题解决方案,帮助工程师高效完成ISP调试工作,提升图像处理质量。

weixin_29168813的博客 485

[WC2006]水管局长

题目大意: 给出n个点m条边的无向图,权值在边上,再进行q次操作。 操作有两种: 1.询问连通两点的途经最大值的最小值。  2.删除连接u、v的边。   解题报告: 这题写了一个下午,调、拍了一个下午+一个晚上,有够虐心的……最后发现忘了考虑Splay翻转标记反反得正!悲催啊!   ┏ (゜ω゜)=☞ 下面是题解:   看到不可逆转拆边,果断想到逆向思维,即按时间倒叙回溯模拟

Delayyy 1288

SAP HANA CDS View Syntax Options 全解:从语法到工程实践

本文面向SAP HANA工程师,深入解析CDS视图的语法与应用场景。文章涵盖XS Advanced环境下的CDS视图设计要点,包括SELECT基础语法、聚合函数与分组约束、参数化视图实现以及常见连接操作。特别强调工程实践中的注意事项:GROUP BY禁用表达式、原生表名大小写规范、结果集裁剪方式选择等。通过两个真实案例(办公室占用率统计和客户画像分析)展示CDS视图在实际业务中的应用,并提供性能优化建议。全文采用中英文混排规范,技术术语使用反引号标注,旨在为开发者提供清晰的CDS视图开发指南。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 209

bzoj 2594: [Wc2006]水管局长数据加强版 动态树

2594: [Wc2006]水管局长数据加强版 Time Limit:25 SecMemory Limit:128 MBSubmit:934Solved:291[Submit][Status] Description SC省MY市有着庞大的地下水管网络,嘟嘟是MY市的水管局长(就是管水管的啦),嘟嘟作为水管局长的工作就是:每天供水公司可能要将一定量的水从x处...

alex151194310的博客 201

7.19华为OD机试真题 新系统 - 物流仓储多维度成本利润综合查询系统 (Java/Py/C/C++/Js/Go)

7.19华为OD机试真题 新系统 - 物流仓储多维度成本利润综合查询系统 (Java/Py/C/C++/Js/Go)

算法大师! 616

【Qt】QtCreator远程部署、调试程序

1)QtCreator 工具–> 选项 --> 设备 --> 添加2)设备设置向导选择–> Generic Linux Device --> 开启向导3)填写“标识配置的名称”(随便写)、设备IP、用户名 --> 下一步4)选择配对秘密文件,第一次配对,可以不填写,点击“下一步”5)点击“完成”6)设备添加成功,需要再配置SSH端口号、用户名、密码等7)保存SSH登陆密码:验证类型选择默认“Default”–> “创建新密钥”–> “Test”

郭老二 5193

【BZOJ 2594】 [Wc2006]水管局长数据加强版

LCT维护最小生成树~ 拆边为点~ 详细题解~

Regina8023 2145

金融数字化——详解2025年金融智能体深度应用报告【附全文阅读】

《2025年金融智能体深度应用报告》显示,金融智能体已实现80%部署率,推动行业效率提升30%-50%。报告指出智能体通过"感知-推理-规划-执行-进化"机制突破大模型局限,在风控、客服、投研等100+场景实现自动化。典型案例显示,工商银行信贷审批效率提升60%,蚂蚁数科智能客服解决80%问题。尽管面临系统协同、标准缺失等挑战,未来趋势将向多模态交互、自主进化和ESG投资等方向拓展。

cdfunlove的博客 203

【WC2006】【BZOJ2594】水管局长数据加强版

Description SC省MY市有着庞大的地下水管网络,嘟嘟是MY市的水管局长(就是管水管的啦),嘟嘟作为水管局长的工作就是:每天供水公司可能要将一定量的水从x处送往y处,嘟嘟需要为供水公司找到一条从A至B的水管的路径,接着通过信息化的控制中心通知路径上的水管进入准备送水状态,等到路径上每一条水管都准备好了,供水公司就可以开始送水了。嘟嘟一次只能处理一项送水任务,等到当前的送水任务完成了,才能

CreationAugust is 14 years old forever 1812

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jre9下载 jdk9

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

[BZOJ2594][WC2006][LCT][MST]水管局长数据加强版

[Problem Description]     SC省MY市有着庞大的地下水管网络,嘟嘟是MY市的水管局长(就是管水管的啦),嘟嘟作为水管局长的工作就是:每天供水公司可能要将一定量的水从x处送往y处,嘟嘟需要为供水公司找到一条从A至B的水管的路径,接着通过信息化的控制中心通知路径上的水管进入准备送水状态,等到路径上每一条水管都准备好了,供水公司就可以开始送水了。嘟嘟一次只能处理一项送水任务,

gaotianyu1350的专栏 2118

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

bzoj 2594 [Wc2006]水管局长数据加强版

LCT维护动态最小生成树

我要吃熊猫 474

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

BZOJ2594 [Wc2006]水管局长数据加强版

本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作。 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! 题目链接:BZOJ2594 正解:LCT 解题报告:   这道题需要维护动态删边,每次查询两点间的...

dgoh41514的博客 195

bzoj2594 [Wc2006]水管局长数据加强版

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2594 【题解】 不难考虑到这样一个性质:u->v路径上最大边最小,一定在MST上。 这个可以用kruskal来证明 有了这个结论就这题很显然就可做了。 考虑时光倒流,变成加边、询问u->v路径上最大边最小值。 可以用LCT维护边权最大值以及出现位置,即可。 ...

aklm45097的博客 191

BZOJ 2594: [Wc2006]水管局长数据加强版

一道很不错的LCT!

cgh_Andy's Blog 1334

[bzoj2594][WC2006]水管局长数据加强版

2594: [Wc2006]水管局长数据加强版Time Limit: 25 Sec Memory Limit: 128 MB Submit: 2186 Solved: 674 [Submit][Status][Discuss] DescriptionSC省MY市有着庞大的地下水管网络,嘟嘟是MY市的水管局长(就是管水管的啦),嘟嘟作为水管局长的工作就是:每天供水公司可能要将一定量的水从x处

Vampire 688

bzoj 2594 WC 2006 水管局长数据加强版 [Link-Cut Tree]

2594: [Wc2006]水管局长数据加强版Time Limit: 25 Sec Memory Limit: 128 MB Submit: 2560 Solved: 820DescriptionSC省MY市有着庞大的地下水管网络,嘟嘟是MY市的水管局长(就是管水管的啦),嘟嘟作为水管局长的工作就是:每天供水公司可能要将一定量的水从x处送往y处,嘟嘟需要为供水公司找到一条从A至B的水管的路径,

C'est la vie. 938

「BZOJ2594」 [Wc2006]水管局长数据加强版【LCT + Kruskal】

2594: [Wc2006]水管局长数据加强版 Time Limit: 25 Sec Memory Limit: 128 MB Submit: 5661 Solved: 1676 ## Description SCSCSC省MYMYMY市有着庞大的地下水管网络,嘟嘟是MYMYMY市的水管局长(就是管水管的啦),嘟嘟作为水管局长的工作就是:每天供水公司可能要将一定量的水从xxx处送往yyy处,...

wzw 202

bzoj2594 [Wc2006]水管局长数据加强版

好屎的一道题啊 倒序加边kruscal,LCT维护maxn 然而我在bzoj上并卡不过去 操 放上我用尽心思卡评测的代码 1 #pragma optimize GCC ("O3") 2 #include<cstdio> 3 #include<algorithm> 4 #include<map> 5 #def...

aida9573的博客 106
上一篇: bzoj2243: [SDOI2011]染色
下一篇: bzoj3083: 遥远的国度
thy_asdf
博客等级 码龄12年 16粉丝 186原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值