树上查分 暗之链锁

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

      传送门

        朴素版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]+... 阅读详情

相关推荐

别再被手机厂商忽悠了!一文看懂光学变焦、数字变焦和混合变焦到底有啥区别

本文深入解析手机摄影中的光学变焦、数字变焦和混合变焦技术,揭示它们的工作原理和实际效果差异。光学变焦保持无损画质,数字变焦依赖算法放大,而混合变焦结合两者优势。帮助消费者识破厂商宣传,根据实际需求选择最适合的变焦方式,提升拍摄质量。

weixin_28717969的博客 411

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

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

weq2011的博客 8679

智能车数字图像处理算法入门及C语言实现

智能车图像的最最基本入门算法介绍及C语言实现,二值化 - 特征识别 - 补线 - 中心巡线 - 偏差曲率计算。

不想随波逐流的大学生一枚,我们每个人都在努力奔跑 5110

树上差分详解

树上差分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万+

Qwen-Image(阿里通义千问)技术浅析(一)

Qwen-Image(阿里通义千问多模态模型)是阿里巴巴推出的视觉-语言多模态大模型,能够理解图像内容并完成复杂的跨模态任务。

m0_75253143的博客 678

罗克韦尔AB PLC_FactoryTalk无法登录的解决方法

罗克韦尔AB PLC_FactoryTalk无法登录的解决方法

Robot_PLC_HMI_Automation 3575

浅析树上差分

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

doooge_awa的博客 1039

iStoreOS等软路由插件卸载的残留?分享一款软路由高级卸载工具,自定义卸载,轻松解决卸载残留问题

iStoreOS用户看过来!👀 还在被插件包残留困扰吗?本文分享一款“高级卸载”的插件,助你深度清理iStoreOS系统,彻底解决软件卸载不净的痛点,告别频繁恢复出厂设置的烦恼!🚀

XiaoqiangClub的博客 1544

树上差分

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

qq_37957064的博客 997

使用virtuoso gds转lef操作方法

2) 然后,需要创建Pin,这里Pin的概念不同于label/text,是有实际金属的,二者的区别类似于pr中的port和terminal。1) 首先,需要画prBoundary,这个用drawing层的prBoundary画是不行的,不过建议pr阶段就把prBoundary转到gds里,在virtuoso layout中画prBoundary就比较容易。另外,用Create - Create Pin也可以创建pin,更适用于PG pin,操作时先给pg shape打label,最好放正中间。

m0_61544122的博客 1380

基于Python的京东商品价格监控与降价提醒系统设计与实现

本文详细介绍了如何使用Python构建一个完整的京东商品价格监控与降价提醒系统。系统通过爬虫技术实时抓取京东商品价格信息,结合数据存储与分析,实现价格波动监控和智能降价提醒功能。文章涵盖了系统设计、技术选型、代码实现以及部署方案,为电子商务价格监控领域提供了一个实用的解决方案。关键词:Python爬虫、京东API、价格监控、降价提醒、自动化。

2201_76125261的博客 405

COGS 2437 暗之链锁 II 题解

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

afghbv0316的博客 179

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

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

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

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

weixin_30566149的博客 156

android 蓝牙通讯demo

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

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

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

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

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

qizhiburce的博客 632

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

树上差分(求法与练习)

差分: 与前缀和背道而驰的算法, 给你一个数列, 要求在数组下标在[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

差分与树上差分

差分与树上差分 差分 必须离线。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、付费专栏及课程。

余额充值