树上查分 暗之链锁

树上差分入门:详解+例题 树上差分的学习笔记~(〃'▽'〃) (点个赞吧,球球啦) 阅读详情

      传送门

        朴素版LCA就能过。。标程是树上查分,但数据很水。

     标记每一条树边被虚边覆盖的次数,只有一次或零次时,砍此边才能满足,一次时只有一种,零次时有m种。

     

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#define N 100000
using namespace std;
int n,m,adj[N+5],ans=0,e=0;
int f[N+5],dep[N+5],a[N*2+5],bian[N+5];
struct node 
{
	int v,next;
} lu[N*2+20];
void add(int u,int v)
{
	lu[++e].v=v;lu[e].next=adj[u];adj[u]=e;
}
int read()
{
	int sum=0;char x=getchar();
	while(x<'0'||x>'9')x=getchar();
	while(x>='0'&&x<='9')sum=sum*10+x-'0',x=getchar();
	return sum;
}
void dfs(int x,int fa)
{
	f[x]=fa;
	for(int i=adj[x];i;i=lu[i].next)
	{
		int to=lu[i].v;
		if(to!=f[x])
		{
		    bian[to]=i;
			dep[to]=dep[x]+1;
			dfs(to,x);
		}
	}
}
void jia(int x,int y)
{
	while(x!=y)
	{
		if(dep[x]<dep[y])swap(x,y);
		a[bian[x]]++;
		x=f[x];
	}
}
void zhao(int x)
{
	for(int i=adj[x];i;i=lu[i].next)
	if(lu[i].v!=f[x])
	{
		if(!a[i])
		   ans+=m;
		else
		   if(a[i]==1)
		      ans+=1;
		zhao(lu[i].v);
	}
}
int yjn()
{
	freopen("yam.in","r",stdin);
	freopen("yam.out","w",stdout);
	n=read();m=read();
	int x,y;
	for(int i=1;i<n;i++)
	{
		x=read();y=read();
		add(x,y);
		add(y,x);
	}
	dfs(1,0);
	for(int i=1;i<=m;i++)
	{
		x=read();y=read();
		jia(x,y);
	}
	zhao(1);
	printf("%d",ans);
	//for(int i=1;i<=n;i++)
	//    cout<<bian[i]<<" "<<a[bian[i]]<<endl;
}
int qty=yjn();
int main(){;}

关于树上差分的一些理解 借鉴博客 一些题目: (由易到难) 洛谷P3258松鼠的新家 洛谷P2680运输计划 洛谷P1084疫情控制 树上差分是一个很好的技巧. 主要分为下面两种: 一.关于边的差分(如找被所有路径共同覆盖的边) 首先我们除了一般的up,deep等数组以外,多开一个数组:sum。 sum用来记录点的出现次数(具体点说实际上记录的是点到其父亲的边的出现次数, 我们这样处理: sum[u]+... 阅读详情

相关推荐

【HAL库-STM】智能温控按键小风扇【胎教级教学】

硬件设备:DHT11,0.96寸oled屏,二/三/四线风扇(不挑),面包板 、f10的精英板等等。当人在的风扇面前时可以自行控制风扇,不在面前时又想开风扇就让他温控自行开启,(在这里有一个想法就是加上蓝牙和wifi控制的功能能够远程遥控,这个如果做的再全一点就要自主研发是一个多功能app,这里没有做。针对这个dht11,我一开始是卡在了这个check函数里面,一直是我给完dht11低电平和高电平后,dht11不回复我低电平和高电平,这个不是我的问题,当时代码是没毛病的,这个点一直卡着我。吐血五天实现小成品

weixin_52451652的博客 1740

【学习笔记】树上差分总结(点差分/边差分)

【学习笔记】树上差分总结(点差分/边差分)(图文并茂,匠心之作,保证能看懂)

weq2011的博客 8679

Linux中断子系统分析之(四):驱动程序申请中断

中断子系统中有一个重要的设计机制,那就是Top-half和Bottom-half,将紧急的工作放置在Top-half中来处理,而将耗时的工作放置在Bottom-half中来处理。 如果中断不分上下半部处理,那么意味着只有等上一个中断完成处理后才会打开中断,下一个中断才能得到响应。当某个中断处理处理时间较长时,很有可能就会造成其他中断丢失而无法响应,影响系统性能。 中断分成上下半部处理可以提高中断的响应能力,在上半部处理完成后便将中断打开,这样就可以响应其他中断了,等到中断退出的时候再进行下半部的处理。为了进

m0_46525308的博客 1226

树上差分详解

树上差分Max Flow NKOJ3605给定一棵有N个点的树,所有节点的权值初始时都为0。 有K次操作,每次指定两个点s,t,将s到t路径上所有点的权值都+1。 请输出K次操作完毕后权值最大的那个点的权值。 2≤N≤50,000 1≤K≤100,000对于每一次修改s,t,将s,t的权+1; 将LCA(s,t)和father[LCA(s,t)]的权-1

a1351937368的博客 1万+

kaggle——销量预测的baseline(M5 Forecasting - Accuracy)

前言 在刚刚结束的kaggle比赛M5 Forecasting - Accuracy中,因为是第一次参加,笔者也是花了大量的时间和精力在上面,最终拿到一块银牌(所以我拿到了大学第一个考试挂科。。。求求电磁场老师高抬贵手给点平时分放我一马吧。。。早上看到kaggle成绩异常兴奋,中午考完直接爆炸=。=),当然运气占了很大因素,这次比赛private leadboard的shake up非常大,排名波动几千名都存在的。笔者运气不错,是向上的shake:)。这里总结一下销量预测的基本流程。 从下图可以看到这次比

weixin_43901221的博客 5433

Unity中USD场景导入与工业级协作实战指南

USD(Universal Scene Description)是一种面向复杂三维场景的结构化数据模型,其核心在于分层描述、变体管理与非破坏性组合,本质是支持多团队并行协作的场景协议。它不同于传统模型格式,强调运行时可编辑性与版本可控性,技术价值体现在跨软件资产一致性、零拷贝动态叠加及内存中实时合成。典型应用场景包括建筑BIM实时漫游、汽车多配置仿真、影视级灯光材质协同等工业管线。在Unity中,USD已深度集成于URP/HDRP管线,通过原生USD Importer、Runtime与Exporter三组件

weixin_32073537的博客 301

浅析树上差分

本文介绍了如何用差分解决一些树上问题以及两个例题,三个作业,小白也可以看懂!

doooge_awa的博客 1039

Trae+Playwright MCP自动化测试全流程指南:从环境搭建到智能体运行

本文提供了一份详细的Trae与Playwright MCP集成指南,涵盖从Node.js、Python环境搭建到智能体创建的全流程。通过结合MCP协议,AI智能体能够理解任务并驱动Playwright执行复杂的浏览器自动化操作,实现从网页数据抓取到端到端测试的智能工作流。

banana的博客 531

树上差分

树上差分   树上差分是我认为是LCA的一种应用方式,由于树的特性,我们在求解树上差分时是能从底向上求解,这样树上差分的适用范围有了一定的限制,例如我们在求解过程中只有子树和的统计才是有意义的,单纯统计一条边上的和是没有任何意义的,这是我们在更改时就只更改了从节点到LCA这一区间的值,对于从别的分治来的统计和,只能代表从这从这一分支向上传递的更改。   树上差分适用于这种问题——对树上的一段路径进行操作,并询问某个点或某条边被经过的次数,此时我们可以利用树上差分实现懒惰更改,并在最终求结果时,采用DFS一次

qq_37957064的博客 997

关于 SAP UI5 应用 url 中的特殊符号 # 的作用介绍

符号在 SAP UI5 的 URL 中不仅仅是一个分隔符,更是动态路由、状态管理和深链接的关键所在。通过合理使用,开发者可以实现高效、流畅的用户体验,同时保持系统的可维护性和扩展性。通过 SAP UI5 提供的灵活路由机制,企业应用可以轻松实现复杂导航需求,同时为用户提供直观的交互体验。

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

Openclaw 错误分析 与 解决方案 之:Selected model is at capacity. Try a different model, or wait and retry.

Openclaw 错误分析 与 解决方案 :Selected model is at capacity. Try a different model, or wait and retry.

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 6422

COGS 2437 暗之链锁 II 题解

【题意】 给出一个有n个点的无向图,其中有n-1条主要边且这些主要边构成一棵树,此外还有m条其他边,求斩断原图的一条主要边和k条其他边使得图不连通的方案数mod109+7的值。 注意,就算你切断一条主要边和不足k条附加边之后就已经使图不连通,你也需要再切够k条附加边才算一种方案。 【解法】 回顾原题暗之链锁,我们仍然从连通块之间相连的边入手。 所有合法方案中不外乎k+1种情况:...

afghbv0316的博客 179

uniapp [安卓苹果App端] - 在“安卓app/苹果app“平台端打包编译后,微信授权登录报错 login:fail [:-1]未能完成操作。(PGWXAPI错误-1。)错误码code:-10

uni-app,安卓Android,苹果ios,安卓app端,苹果App端,uniapp苹果安卓app,微信授权登录,uniAppAPP端微信登录报错,出现微信确认登录界面后点击登录报错,BundleID,应用ID,微信登录,app微信一键登录,微信登录绑定点确定就出错,AppSecrect,login:fail[:-1]未能完成操作。(PGWXAPI错误-1。),"errCode":-100,"code":-100,在uniappmanifest.json配置了AppSecrect还是报错无

🏆 前端领域优质创作者 3764

【COGS 2434】 暗之链锁 树上差分+LCA

差分就是把一个值拆成许多差的和如 1 2 4 6 9 那么 把这个东西拆成 1 1 2 2 3 就是了,当然也可以理解为对一个问题分解为多个子问题并对其进行操作来得到原问题的答案。 树上差分就更玄妙了,它既可以把原问题拆成他到根节点的所有点,也可以拆成子树,拆成子树的话修改一个点影响的是他到根的路径上所有点,根据这个我们可以再加上LCA来解决许多问题。 这道题:I. 我们可以看出我们可以把它转...

weixin_30566149的博客 156

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

c++基础树上问题————树上差分:万字泣血!超强解析,一篇就会,无需多言,适合小白,附有例题加强训练!

详细解释c++的树上差分问题,适合参加算法比赛的同学!

qizhiburce的博客 632

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

树上差分(求法与练习)

差分: 与前缀和背道而驰的算法, 给你一个数列, 要求在数组下标在[l,r][l,r][l,r]范围内的数同时+x+x+x, 那么只需在差分数组a[l]+x,a[r+1]−xa[l]+x,a[r + 1]-xa[l]+x,a[r+1]−x, 最后∑i=1ja[i]\displaystyle\sum_{i=1}^{j}a[i]i=1∑j​a[i]就是原数组arr[j]arr[j]arr[j]变化之后的值. 树上差分和最近公共祖先是两兄弟, 缺一不可 树上差分分为两种, 一种为边差分, 一种为点差分. 边差分:

weixin_51596558的博客 905

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

差分与树上差分

差分与树上差分 差分 必须离线。O(1)修改,O(n)求和,O(1)查询 [L,R]区间整体加上d:w[L]+=d, w[R+1]-=d A数组为修改后的数组,有A[i]=A[i-1]+w[i] 树上差分 点权求和:若[x,y]两点之间路径上的所有点的权值+d,则w[x]+=d , w[y]+=d , w[LCA(x,y)]-=d , w[Fa[LCA(x,y)]]-=d 边...

AnnieL 985

Codeforces 739B Alyona and a tree (树上差分+二分)

D. Alyona and a tree time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Alyona has a tree with n vertices. The

K键盘里的青春K 1239

COGS2434 暗之链锁

树上差分+树剖 tmp[i]:i到它父亲的边被覆盖的的次数 主边树剖,对于每一条虚边起点tmp[s]++,终点tmp[t]++,tmp[lca(s,t)]-=2,最后从tmp[i]!=0的点开始向上更新到根 1.如果当前节点i和fa[i]之间的边没有被虚边覆盖,砍掉这条边+任意一条虚边,方案数为m 2.如果这条边被虚边覆盖,当覆盖数==1时,只有砍掉这条边和这...

weixin_33872660的博客 151

【结论】【树上差分】

在树中将所有路径起、始权值加1,起、始点的lca权值减2,从所有叶节点开始把权值往上累加。最终权值为路径数的点到其父亲的边为所求边。

ANG 2886

CF 97 E - Leaders - 随机 - 树上差分 - 圆方树

题目大意: 给你一张图多次询问两点路径是否为奇数。 题解: 一看就是个圆方树 想了想细节挺多就弃疗了 然后想了一个假做法,即随便弄出一个dfs树然后询问路径如果和非树边产生的奇环相交就是yes。这样场上并没有过大样例但是只有一个误差(共1e5组询问)。后来闲的没事把边表和dfs序列random_shuffle了一遍,然后……咦我怎么80分了?然后改成跑十遍这个随机然后就过了…… 顺带在cf上也能过...

Mys_C_K的博客 462

P5157 The Cow Gathering [拓扑排序/树上差分]

The Cow GatheringThe\ Cow\ GatheringThe Cow Gathering Description\mathcal{Description}Description 给定 NNN 个节点的树, 有 MMM 条限制条件 : aia_iai​ 比 bib_ibi​ 先删除. 请输出 所有节点能否最后被删除. Solut...

Zbr162的博客 383
上一篇: “反悔”贪心 烤鸡翅
下一篇: 自我介绍
QTY_
博客等级 码龄9年 13粉丝 211原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值