bzoj3669

抖音小程序开发 唤起收银台支付(可以选择支付宝APP支付或微信H5支付) 什么都别说,先看效果: 字节跳动也开放了小程序给商家接入,可以在旗下APP如抖音、今日头条、今日头条极速版等应用中即点即用,基于庞大的数亿用户量为其引流,帮助商家获取用户流量,销售商品,其模式和微信小程序差不多。 1、后台管理地址: https://developer.toutiao.com/ 2、开发文档地址: https://developer.toutiao.com/dev/cn/min... 阅读详情

一维排序 另一维lct维护最小生成树


#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;

int ch[150010][2],rv[150010],fa[150010],st[150010],tp;
int ma[150010],x[150010],nu[150010],mn[150010];

int n,m;
int head[50010];
int ans = 0x3f3f3f3f;
struct edge {
	int u,v,a,b;
	bool operator < (const edge &b)const {
		return a < b.a;
	}
}e[100010];

int read_int () {
	char c = getchar();
	int re = 0;
	for(;c > '9' || c < '0';c = getchar());
	for(;c >= '0' && c <= '9';c = getchar())
		re = re * 10 + c - '0';
	return re;
}

int find (int u) {
	if(head[u] == u)
		return u;
	return head[u] = find(head[u]);
}

void pu (int u) {
	ma[u] = x[u];
	mn[u] = nu[u];
	if(ma[u] < ma[ch[u][0]]) {
		ma[u] = ma[ch[u][0]];
		mn[u] = mn[ch[u][0]];
	}
	if(ma[u] < ma[ch[u][1]]) {
		ma[u] = ma[ch[u][1]];
		mn[u] = mn[ch[u][1]];
	}
}

void reverse (int u) {
	int t = ch[u][0];
	ch[u][0] = ch[u][1];
	ch[u][1] = t;
	rv[u] ^= 1;
}

void pd (int u) {
	if(!rv[u])
		return;
	rv[u] = 0;
	reverse(ch[u][0]);
	reverse(ch[u][1]);
}

void rot (int u,int d) {
	ch[fa[u]][d ^ 1] = ch[u][d];
	if(ch[u][d])
		fa[ch[u][d]] = fa[u];
	int t = fa[fa[u]];
	fa[fa[u]] = u;
	ch[u][d] = fa[u];
	fa[u] = t;
	
	pu(ch[u][d]);
	pu(u);
	
	if(!t)
		return;
	if(ch[t][0] == ch[u][d])
		ch[t][0] = u;
	if(ch[t][1] == ch[u][d])
		ch[t][1] = u;
}

void splay (int u) {
	st[tp = 1] = u;
	int t = u;
	while(ch[fa[t]][0] == t || ch[fa[t]][1] == t) {
		t = fa[t];
		st[++tp] = t;
	}
	while(tp)
		pd(st[tp--]);
		
	while(ch[fa[u]][0] == u || ch[fa[u]][1] == u) {
		if(ch[fa[fa[u]]][0] != fa[u] && ch[fa[fa[u]]][1] != fa[u]) {
			if(ch[fa[u]][0] == u)
				rot(u,1);
			else rot(u,0);
		}
		else {
			int d = ch[fa[fa[u]]][0] == fa[u];
			if(ch[fa[u]][d] == u) {
				rot(u,d ^ 1);
				rot(u,d);
			}
			else {
				rot(u,d);
				rot(u,d);
			}
		}
	}
}

void access (int u) {
	int v = 0;
	while(u) {
		splay(u);
		ch[u][1] = v;
		pu(u);
		v = u;
		u = fa[u];
	}
}

void mtr (int u) {
	access(u);
	splay(u);
	reverse(u);
}

void link (int u,int v) {
	mtr(u);
	mtr(v);
	fa[v] = u;
}

void cut (int u,int v) {
	mtr(u);
	access(u);
	splay(v);
	fa[v] = 0;
}

int main () {
	n = read_int();
	m = read_int();
	
	for(int i = 1;i <= n;++i)
		head[i] = i;
	
	for(int i = 1;i <= m;++i) {
		e[i].u = read_int();
		e[i].v = read_int();
		e[i].a = read_int();
		e[i].b = read_int();
	}
	
	sort(e + 1,e + 1 + m);
	
	e[0].a = e[1].a;
	for(int i = 1;i <= m + 1;++i) {
		if(e[i].a != e[i - 1].a && find(1) == find(n)) {
			mtr(1);
			access(n);
			splay(1);
			ans = min(ans,e[i - 1].a + ma[1]);
		}
		if(i == m + 1)
			break;
		if(e[i].u == e[i].v)
			continue;
		if(find(e[i].u) == find(e[i].v)) {
			mtr(e[i].u);
			access(e[i].v);
			splay(e[i].u);
			if(ma[e[i].u] < e[i].b)
				continue;
			int t = mn[e[i].u];
			cut(t + n,e[t].v);
			cut(t + n,e[t].u);
		}
		else head[find(e[i].u)] = find(e[i].v);
		x[i + n] = ma[i + n] = e[i].b;
		nu[i + n] = mn[i + n] = i;
		link(i + n,e[i].u);
		link(i + n,e[i].v);
	}
	if(ans == 0x3f3f3f3f)
		ans = -1;
	printf("%d\n",ans);
	return 0;
}


Python电梯II 输入数据有若干组(最多不超过1000组),每组数据的第一行为四个如题目中所示的整数N,u,d,s,由空格分隔开。第二行为不同楼层需要上下楼的请求, 最多不超过1000个。每个请求的格式为"from-to",其中"from"和"to"为所在楼层和要到达的楼层,保证from!=to。 阅读详情

相关推荐

在mac OS下安装SQL Developer

最近一直在折腾Oracle数据库,但由于电脑是mac系统,plsql developer用不了,远程管理一直不是很方便。后来听说Navicat不错,就也装了个试试看,发现界面看起来确实不错。今天心血来潮,想试试oracle自己开发的client。用惯plsql developer的人也可以来试试看,毕竟是自己人开发的,兼容性应该会不错吧。下面就把安装过程分享给新手或者需要帮助的朋友。 1.

bonbonboo的专栏 2万+

【BZOJ3669】[Noi2014]魔法森林 LCT

【BZOJ3669】[Noi2014]魔法森林 Description 为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士。魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1..M。初始时小E同学在号节点1,隐士则住在号节点N。小E需要通过这一片魔法森林,才能够拜访到隐士。 魔法森林中居住了一些妖怪。每当有人经过一条边的时候,这条边...

aodanchui1057的博客 151

STM32F4三重ADC+DMA双缓冲实战:用CubeMX搞定同步采样,告别数据覆盖烦恼

本文详细介绍了STM32F4三重ADC与DMA双缓冲技术的实战应用,通过CubeMX配置实现同步采样,解决数据覆盖问题。内容涵盖硬件架构解析、CubeMX工程配置、双缓冲实现技巧及调试优化方法,适用于电机控制、电力监测等需要高精度多通道信号采集的场景。

weixin_30627341的博客 358

[BZOJ3669][LCT]NOI2014:魔法森林

BZOJ3669 LCT板子题吧 用类似于kruscal的想法,先对a排序加边,然后每次加入如果连通了两个连通块就直接加 如果已经连通就查询一下原来的路径上的最大值删去就好 如果某一步操作下1和n已经连通就更新答案 Code: #include&lt;bits/stdc++.h&gt; using namespace std; inline int read(){ int res=0,f=1;c...

romiqi 180

车辆横向控制MPC实战:从‘老王模型’到CasADi求解的保姆级避坑指南

本文详细解析了车辆横向控制MPC的实战应用,从经典动力学模型选择到CasADi求解器的优化配置,提供了一套完整的避坑指南。重点介绍了车辆动力学模型的验证要点、CasADi环境的高效配置技巧以及MPC问题建模的核心要素,帮助开发者快速实现稳健的横向控制方案。

weixin_42524499的博客 346

Wincc7.5SP1 按钮操作记录(二次确认及语音播报)

Wincc 7.5 SP1 按钮操作记录生成(含二次确认及语音播报) 前面一篇文章已经介绍了“语音播报WINCC报警”,本文是之前功能的延伸,记录按钮操作记录并实现播报。 操作记录及语音播报效果 <创建消息文本> 1. 创建消息文本 消息编号100,消息等级“系统无确认”,消息类型“操作员输入消息”,消息文本“循环水泵启动操作”,其他参数默认。 消息编号101,消息等级“系

徐站的春天 1万+

BZOJ 3669 魔法森林 LCT

链接:【BZOJ 3669】 题意:一个无向图,每条边都有A,B两种权值,找出一条最优路径使得1~n路径上的两个权值的瓶颈之和最小。 思路:对于每条边按照A为关键字从小到大排序,枚举A的瓶颈加入边,若边的两点之间联通,则找出B最大的边并比较,若大于当前B,则将该边删去,否则不加入这条边。 代码:#include<cstdio> #include<iostream> #include<algor

alpc_paul的专栏 1014

嵌入式SD/TF卡通用协议-SDIO协议

为了驱动SD卡,首先的第一步就是观察SD卡引脚接线情况,通常我们在画原理图时,都是使用的SD卡卡槽与MCU进行接线。SD卡可以使用SDIO协议和SPI协议进行通信,这里我们主要介绍SDIO协议。下图中的TF卡只是容量小一点的SD卡。以F1C100S为例,接线图如下所示:我们发现上图中的TF卡使用的协议为SDIO协议,主要有4根数据线,1根命令线,1根时钟线组合而成。为了驱动这个SD/TF卡我们就需要去了解SDIO协议的时序。

qq_1033275663的博客 3052

[bzoj3669][Noi2014]魔法森林_LCT_并查集

魔法森林 bzoj-3669 Noi-2014 题目大意:说不明白题意系列++……题目链接 注释:略。 想法:如果只有1个参量的话spfa、dij什么的都上来了。 两个参量的话我们考虑,想将所有的边按照a排序。 如果两个点:它们之间有两条路径,有一条比另一条劣。 那么我们完全可以将另一条弄掉。 排序之后维护生成树。 LCT的点维护的是实子树中第二参量的最大值。 如果...

dianan0938的博客 135

ESP32-S3 USB下载模式深度解析:从UART0到TinyUSB的硬件设计与避坑指南

本文深度解析ESP32-S3的三种USB下载模式:UART0、Hardware CDC和基于TinyUSB的USB-OTG CDC。详细探讨各模式的硬件设计要点、电平异常问题、eFuse配置及避坑指南,帮助开发者优化设计,提升量产效率和系统稳定性。

gold的博客 1290

ArcGIS实验教程——实验二:ArcGIS地理配准完整操作步骤

本文介绍ArcGIS 10.2中地理配准的完整操作流程,涵盖加载扫描地图、启用地理配准工具条、添加控制点(含经纬度输入与坐标系统选择)、均匀分布控制点以提升精度,并最终通过“更新地理配准”完成栅格数据的空间定位。强调控制点数量、分布及坐标系匹配的重要性,附带实验数据下载链接与获取方式,适用于初学者掌握扫描矢量化前的关键几何校正技能。

智慧空间实验室 9万+

BZOJ 3669 [Noi2014]魔法森林(贪心+LCT)

【题目链接】http://www.lydsy.com/JudgeOnline/problem.php?id=3669 【题目大意】   给出一张图,每条边上有两个值ai和bi,现在需要求出一条1到N的路,   求使得路上ai的最大值与bi的最大值的和最小。 【题解】   我们按照ai的权值从小到大排序,依次加边,我们只要求出bi最大值最小的生成路即可,   ...

weixin_30289831的博客 85

回归预测 | MATLAB实现基于贝叶斯线性回归(Bayesian Regression)的多变量输入回归预测

回归预测 | MATLAB实现基于贝叶斯线性回归(Bayesian Regression)的多变量输入回归预测

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 2200

[BZOJ 3669] [Noi2014] 魔法森林 【LCT】

题目链接:BZOJ - 3669 题目分析 如果确定了带 x 只精灵A,那么我们就是要找一条 1 到 n 的路径,满足只经过 Ai <= x 的边,而且要使经过的边中最大的 Bi 尽量小。 其实就是一个按照 Bi 建立的 MST 上 1 到 n 的路径。只能使用 Ai <= x 的边。 那么,如果我们从小到大枚举 x ,这样可以使用的边就不断增加,就是在加边的同时维护 M...

weixin_30404405的博客 71

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

BZOJ3669: [Noi2014]魔法森林(洛谷P2387)

LCT 最小生成树 BZOJ题目传送门 洛谷题目传送门 先对边按照a排个序,就像cdq分治那样除去其中一维的影响,而b用LCT动态维护最大值。 当边的两端不连通时直接加边,否则找到两端路径上b的最大值,与当前边比较考虑是否加入并删除原来的边。 但是LCT搞不了边权,可以把一条边变成一个点,然后并把边权赋给这个点(如x−&gt;yx−&gt;yx->y变成x−&gt;z−&gt;yx−&g...

forezxl的博客 463

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【bzoj3669】魔法森林

Portal-->bzoj3669 Solution ​  愉悦智力康复ing ​​  这题的话有两个比较关键的地方 ​​  首先是答案肯定是原图的某个生成树上的一条路径,那么我们考虑怎么来找这个生成树,因为关键值有两个,所以我们这里可以采取这样的一个方式:先对其中一个关键值排序 ​​  我们先将所有的边按照\(a\)值排序,然后按顺序加边,如果说当前这条边连接的两个点已经连通了,那...

weixin_30315723的博客 79

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ESP32+WT3000TX离线语音通知盒子:从硬件接线到代码实战

在物联网与智能家居场景中,设备状态通知往往依赖手机推送或在线语音服务,但网络抖动和云服务依赖常导致关键信息遗漏。离线语音合成技术为解决这一痛点提供了可靠方案:通过专用TTS芯片在本地完成文本转语音,无需联网即可实现即时播报。其核心原理是主控通过串口通信将文本指令发送至语音芯片,芯片内置编码转换与语音库,直接驱动喇叭发声。这种方案不仅降低了对云端API的依赖,还显著提升了响应速度与隐私安全性。在智能家居、工位状态监控、实验室告警等场景中,开发者可借助ESP32的WiFi能力获取数据源,再以低成本的WT3000

weixin_33895516的博客 376

BZOJ 3669 [Noi2014]魔法森林 | LCT

迷啊……调了一下午…… 为什么我把splay时的update方式改成“splay最后再upt(u)一下”就不RE了…… 求大神解答……? 题目链接 BZOJ 3669 题解 将边按照a排序,然后从小到大枚举,加入图中。 在图中用lct维护一棵两点之间b最大值尽量小的生成树。 当加入一条边(u, v)时: 如果(u, v)不连通,则直接加入这条边 如果(u, v)连通且它们间路径上的b最大值大于当前...

weixin_30657999的博客 131

bzoj 3669 魔法森林

LCT维护动态最小生成树

我要吃熊猫 368

BZOJ3669 (动态树)

Problem 魔法森林 (NOI2014) 题目大意   给n个点,m条边的无向图,每条边有两个权值a,b。   求一条从1-->n的路径,使得这条路径上max(a)+max(b)最小。输出最小值即可。 解题分析   将边按照权值a从小到大排序后,依次加边,用lct维护一棵权值b组成的最小生成树。   具体做法是如果所加边u-->v导致形成了一个环,那么比较一下...

aekijekzn484879763的博客 171

[BZOJ3669][Noi2014]魔法森林

[BZOJ3669][Noi2014]魔法森林 试题描述 为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士。魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1..M。初始时小E同学在号节点1,隐士则住在号节点N。小E需要通过这一片魔法森林,才能够拜访到隐士。 魔法森林中居住了一些妖怪。每当有人经过一条边的时候,这条边上的妖怪就会对其发起攻击...

weixin_30455365的博客 85

BZOJ 3669 NOI2014 魔法森林 SPFA

题目大意: 给定一个无向图,每条边有两个权值ai和bi,从1走到N,设路径上a权的最大值为A,b权的最大值为B,求A+B的最小值 首先这题如果只有一个权值就是水题无误……但是多了个权值之后我们就要好好考虑一下了 我们对a排序,枚举a,对于每一次枚举求b权最大值的最小值即可 跑M遍SPFA肯定超时无误 网上很多人写了LInk-Cut-Tree维护动态最小生成树 我的LCT没写明白 就去写了S

世界 4012
上一篇: bzoj3514【lct】【可持久化线段树】
下一篇: bzoj1050
SAuppp
博客等级 码龄12年 5粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值