bzoj2631: tree

Look4sat蓝牙追星云台 //这是一个追星云台的小程序 //配合Look4sat蓝牙传输数据(W*** A***),并让电机做出动作 //app设置内填好ESP32的蓝牙MAC,数据格式:W$AZ A$EL //希望大家可以共同改进 阅读详情

话说bzoj上叫tree的题可真多...

题目大意:路径加,路径乘,路径求和,加边删边。

思路:动态树搞搞就行了,两个标记要注意。

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll unsigned int
#define ls c[x][0]
#define rs c[x][1]
const int mod=51061,maxn=100010; 
using namespace std;
int n,m;char op[2];

struct LCT{
	int fa[maxn],c[maxn][2],size[maxn],rev[maxn];
	ll sum[maxn],val[maxn],mul[maxn],add[maxn];
	bool isroot(int x){return c[fa[x]][0]!=x&&c[fa[x]][1]!=x;}
	int which(int x){return c[fa[x]][1]==x;}
	void update(int x){
//		printf("update%d %d %d\n",x,sum[x],size[x]);
		sum[x]=(sum[ls]+sum[rs]+val[x])%mod;
		size[x]=(size[ls]+size[rs]+1)%mod;	
	}
	void cal(int x,int m,int a){
		if (!x) return ;
		val[x]=(val[x]*m+a)%mod;
		sum[x]=(sum[x]*m+a*size[x])%mod;
		add[x]=(add[x]*m+a)%mod;
		mul[x]=(mul[x]*m)%mod;
//		printf("%d %d %d %d\n",x,sum[x],mul[x],add[x]);
	}
	void flip(int x){swap(c[x][0],c[x][1]),rev[x]^=1;}
	void down(int x){
		if (rev[x]) flip(c[x][0]),flip(c[x][1]),rev[x]^=1;
		if (mul[x]!=1||add[x]) cal(ls,mul[x],add[x]),cal(rs,mul[x],add[x]),mul[x]=1,add[x]=0;
	}
	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);
//		printf("%d %d %d %d\n",x,sum[x],mul[x],add[x]);
		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;x=fa[x]) splay(x),fa[c[x][1]=p]=x,update(x),p=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;}	
	void change(int a1,int b1,int a2,int b2){cut(a1,b1),link(a2,b2);}
	void qsum(int a,int b){makeroot(a),access(b),splay(b),printf("%d\n",sum[b]);}
	void modify(int a,int b,int m,int ad){makeroot(a),access(b),splay(b),cal(b,m,ad);}
}T;

int main(){
	scanf("%d%d",&n,&m);
	for (int i=1;i<=n;i++) T.size[i]=T.val[i]=T.sum[i]=T.mul[i]=1;
	for (int i=1,a,b;i<n;i++) scanf("%d%d",&a,&b),T.link(a,b);
	for (int i=1,a,b,c,d;i<=m;i++){
		scanf("%s",op);
		if (op[0]=='+') scanf("%d%d%d",&a,&b,&c),T.modify(a,b,1,c);
		else if (op[0]=='-') scanf("%d%d%d%d",&a,&b,&c,&d),T.change(a,b,c,d);
		else if (op[0]=='*') scanf("%d%d%d",&a,&b,&c),T.modify(a,b,c,0);
		else scanf("%d%d",&a,&b),T.qsum(a,b);
	}
	return 0;
}


基于 Langchain 开发一个完整的支持多轮数据分析(直连 mysql 数据,多表综合分析 SQL 取数,数据分析,报表生成)ChatBI 系统(前后端完整实现源代码) ChatBI系统开发摘要 本文介绍了基于Langchain的多轮数据分析ChatBI系统开发方案。该系统支持MySQL数据库连接,提供多表分析、SQL查询、数据分析和报表生成功能。系统采用前后端分离架构:前端使用React+Ant Design+ECharts实现交互界面;后端基于FastAPI搭建服务,集成Langchain处理自然语言到SQL的转换;核心技术栈还包括SQLAlchemy、Pandas和Matplotlib。 系统核心模块包括: 数据库连接层:使用SQLAlchemy管理MySQL连接 L 阅读详情

相关推荐

STC8G1K08A的10位PWM避坑指南:为什么你的占空比调节总失效?(附寄存器操作时序图)

本文深入剖析了STC8G1K08A单片机10位PWM功能中占空比调节失效的核心原因,揭示了数据手册未明确指出的寄存器操作时序陷阱。通过对比错误与正确配置的波形,文章指出关键在于更新占空比高2位前需临时关闭PWM输出,并提供了经过验证的安全操作宏与函数库,帮助开发者彻底解决此问题,实现0%-100%的平滑控制。

yyy34的博客 747

【LCT】BZOJ 2631:tree

BZOJ 2631:treeDescription一棵n个点的树,每个点的初始权值为1。对于这棵树有q个操作,每个操作为以下四种操作之一: + u v c:将u到v的路径上的点的权值都加上自然数c; - u1 v1 u2 v2:将树中原有的边(u1,v1)删除,加入一条新边(u2,v2),保证操作完之后仍然是一棵树; * u v c:将u到v的路径上的点的权值都乘上自然数c; / u v:询

puck_just_me的blog 654

SPSS&Mplus—共同方法偏差(Common Method Bias)控制与检验

共同方法偏差(Common Method Bias)的控制方法:程序控制(Procedural)和统计控制(Statistical)。

m0_54401011的博客 1万+

BZOJ2631: tree Link-cut-tree

BZOJ2631: tree Time Limit: 30 Sec  Memory Limit: 128 MB Submit: 3717  Solved: 1238 [Submit][Status][Discuss] 题解: LCT,同时维护乘法和加法,在推乘法标记的时候注意先要更新加法标记 同时维护子树的和要注意必须时时更新不能等着Pushup回来#include #

Oakley 507

基于Python的闲鱼商品价格评估模型:爬虫+价格预测全实现

本文介绍了一个完整的全球气候数据抓取与分析流程,采用轻量化的技术栈(requests+pandas+matplotlib+folium),实现以下核心功能: 全球城市定向抓取:支持自定义城市列表,自动获取经纬度并抓取多源气候数据 双数据源互补:结合OpenWeatherMap API(实时数据)和Climate-Data.org(历史数据) 全维度覆盖:采集气温、降水、湿度等核心指标,并进行自动化清洗转换 丰富可视化:生成热力图、趋势图和统计图表,支持地理定位展示 灵活扩展:模块化设计便于新增城市或扩展数据

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 3046

别让IO口保护二极管坑了你!实测讲解单片机电流倒灌的三种典型症状与防护

本文深入解析单片机电流倒灌的三大典型症状与防护方案,重点分析STM32等单片机在ADC采样异常、系统假死和通信速率异常中的表现。通过实测数据和电路设计建议,提供从基础二极管隔离到专业隔离器件的分级防护策略,帮助工程师有效预防和解决电流倒灌问题。

weixin_29280219的博客 344

BZOJ 2631: tree

其实这题好像也不能说太特别。可能是之前树结构做的不够熟吧。 这类型的题 代码打熟了 就感觉跟线段树差不多了。。。也不算太繁琐 对了,建议用unsigned int,用long long可能会T,反正我用long long是压着时限过去的。。 #include #include #include #include #include #include #include #include

cgh_Andy's Blog 634

DP3(3D Diffusion Policy)算法详解:从点云感知到扩散动作生成

DP3 的全称是:DP3 = 3D Diffusion Policy\boxed{\text{DP3 = 3D Diffusion Policy}}DP3 = 3D Diffusion Policy​对应论文题目是:3D Diffusion Policy: Generalizable Visuomotor Policy Learning via Simple 3D Representations该工作发表于 Robotics: Science and Systems(RSS)2024。DP3 是一种面向机器

u013250861的博客 347

BZOJ2631: tree

裸的lct… 省选前练习模板系列…#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define ll long long //by:MirrorGray using namespace std; const int N=211111,mod=51061; struct LCT{int l,r,fa

MirrorGray的博客 820

Springboot——接入企业微信聊天机器人

最近企业微信的聊天机器人很火也很好玩,本期想自己接入一个玩玩试试水,同时也接入AI大模型进行数据的交互。

专注写bug 1321

股票价格预测的秘密武器:用C#实现蒙特卡洛路径模拟,轻松掌握市场波动规律!

摘要: 蒙特卡洛模拟是股票预测的有效工具,通过随机抽样模拟价格路径,克服传统技术分析的局限性。其核心模型是几何布朗运动(GBM),描述股价随机变化过程。C#实现的关键步骤包括:1)获取输入参数;2)生成随机数路径;3)分析结果。该方法不预测具体价格,而是提供可能的价格范围,帮助投资者评估风险。代码结构清晰,分为输入、模拟、分析和可视化四个模块,通过参数封装提高可读性,适用于不确定市场的概率预测。

墨夶的博客 600

bzoj2631:tree

传送门 LCT模板题 讲一下几个细节: 1、cut的时候如果只是将\(x\)定为根,然后将它的右儿子以及\(y\)的父亲清空是错的,因为\(x\)此时的右儿子不一定是\(y\) 所以记得需要提取路径,然后再将深度小的那个节点的左儿子和深度大的节点的父亲清空 2、对于标记的问题,建议将点权表示为\(p*v_i+q\)的形式(\(p\)为乘法标记,\(q\)为加法标记) 那么打乘法标记的时候就是将乘法...

weixin_30561425的博客 112

cursor AI代码编辑器IDE对接deepseek模型api;字节ai编辑器trae

参考: https://www.cursor.com/ https://platform.deepseek.com/https://www.cursor.com/下载安装后,注册账号登录即可 再高级里选择设置 再模型这注册模型: 模型名称一定要填正确,url地址填好,最后填上秘钥验证

weixin_42357472的博客 1万+

bzoj 2631: tree

Description  一棵n个点的树,每个点的初始权值为1。对于这棵树有q个操作,每个操作为以下四种操作之一: + u v c:将u到v的路径上的点的权值都加上自然数c; - u1 v1 u2 v2:将树中原有的边(u1,v1)删除,加入一条新边(u2,v2),保证操作完之后仍然是一棵树; * u v c:将u到v的路径上的点的权值都乘上自然数c; / u v:询问u到v的路径上

lqybzx的专栏 572

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【BZOJ】2631: tree LCT

【题意】给定n个点的树,每个点初始权值为1,m次操作:1.x到y的点加值,2.断一条边并连一条边,保证仍是树,3.x到y的点乘值,4.x到y的点权值和取模。n,m<=10^5。 【算法】Link-Cut Tree 【题解】区间加和区间乘标记的处理:【BZOJ】1798: [Ahoi2009]Seq 维护序列seq 线段树 splay上维护要注意: 1.上传时加本身。 2.改值的时候...

weixin_33705053的博客 82

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

bzoj2631: tree LCT

LCT基本操作。用long long竟然会被卡常数。。。unsigned int 好。 pushdown递归写果然比较快。。。 维护sum(总和) mul(倍数) add(加的值) val(每个点的值) siz(子树大小)即可。 #include #include #include #include #include using namespace std; #define max

IED98的专栏 592

bzoj 2631: tree LCT

→题目链接← 新博客链接:https://www.everlasting.wang/archives/203 【想说的话】 数据结构调起来可真是令人身心偷税啊 【题解】 pushdown好好搞搞... 【代码】 #include #define MAXN 100010 #define mod 51061 #define ls son[x][0] #defin

everlasting的博客 368

【lct模板】bzoj2631: tree

Description 一棵n个点的树,每个点的初始权值为1。对于这棵树有q个操作,每个操作为以下四种操作之一: + u v c:将u到v的路径上的点的权值都加上自然数c; - u1 v1 u2 v2:将树中原有的边(u1,v1)删除,加入一条新边(u2,v2),保证操作完之后仍然是一棵树; * u v c:将u到v的路径上的点的权值都乘上自然数c; / u v:询问u到v的路径上的点的权值

jmsyzsfq的博客 380

BZOJ 2631: tree LCT

2631: tree Time Limit: 30 Sec  Memory Limit: 128 MB Submit: 4855  Solved: 1659 [Submit][Status][Discuss] Description  一棵n个点的树,每个点的初始权值为1。对于这棵树有q个操作,每个操作为以下四种操作之一: + u v c:将u到v的路径上的点的权值都加上自然数c;

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值