懒得贴题目,直接放不稳定的传送门(雾):点击前往暴风城(雾)

据说这题是BZOJ3490,但本蒟蒻没有权限╮(╯_╰)╭

这题似乎就是裸树上差分。。。

对于树上(x,y)之间的路径上的点区间c[i]加k<==>c[x]+=k,c[y]+=k,c[lca(x,y)]-=k,c[father[lca(x,y)]-=k

就是这样,虽然这题我因为各种智障的原因在luogu上交了3遍,为拉低这题通过率做出了巨大的贡献。。。

最后统计的时候从树根dfs一遍,把子节点的c值加到父节点上就行了~~

所以这题重点就是求lca(x,y)了,在这里我用了Tarjan,因为比倍增快,而且链剖LCA我也不会(或许也没有Tarjan快)。。

贴代码:

#include<cstdio>
#define N 50005
#define M 100005
#define gc getchar
struct edge
{
int to,next;
}e[N<<1];
struct ques
{
int to,next,id;
}f[M<<1];
int n,m,u[N],v[N],c[N],fa[N],up[N],ans[M],tot,tit=0,maxn=0;
bool vis[N],vis2[N];
int find(int x)
{
return fa[x]==x?x:fa[x]=find(fa[x]);
}
void qin(int &a)
{
a=0;char c=gc();bool f=0;
for(;(c<'0'||c>'9')&&c!='-';c=gc());
if(c=='-') f=1,c=gc();
for(;c>='0'&&c<='9';c=gc()) a=a*10+c-'0';
if(f) a=-a;
}
void build(int x,int y)
{
e[++tot].to=y; e[tot].next=v[x]; v[x]=tot;
e[++tot].to=x; e[tot].next=v[y]; v[y]=tot;
}
void quest(int x,int y,int z)
{
f[++tit].to=y; f[tit].next=u[x]; u[x]=tit; f[tit].id=z;
f[++tit].to=x; f[tit].next=u[y]; u[y]=tit; f[tit].id=z;
}
void dfs(int x)
{
vis[x]=1; fa[x]=x;
for(int i=v[x];i;i=e[i].next)
if(!vis[e[i].to])
up[e[i].to]=x,dfs(e[i].to),fa[e[i].to]=x;
for(int i=u[x];i;i=f[i].next)
if(vis[f[i].to])
ans[f[i].id]=find(f[i].to);
}
void dfs2(int x)
{
vis2[x]=1;
for(int i=v[x];i;i=e[i].next)
{
int y=e[i].to;
if(!vis2[y]) dfs2(y),c[x]+=c[y];
}
if(c[x]>maxn) maxn=c[x];
}
int main()
{
qin(n);qin(m);
for(int i=1;i<n;i++)
{
int a,b;qin(a),qin(b);
build(a,b);
}
for(int i=1;i<=m;i++)
{
int a,b;qin(a),qin(b);
c[a]++;c[b]++;
quest(a,b,i);
}
dfs(1);
for(int i=1;i<=m;i++)
c[ans[i]]--,c[up[ans[i]]]--;
dfs2(1);
printf("%d\n",maxn);
}

嗯 就是这样。。。

【学术篇】树上差分--洛谷3128最大流Max Flow的更多相关文章

  1. 树上差分学习笔记 + [USACO15DEC]最大流$Max \ \ Flow \ \ By$

    #\(\mathcal{\color{red}{Description}}\) \(Link\) \(FJ\)给他的牛棚的\(N(2≤N≤50,000)\)个隔间之间安装了\(N-1\)根管道,隔间编 ...

  2. bzoj 5120 无限之环 & 洛谷 P4003 —— 费用流(多路增广SPFA)

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=5120 https://www.luogu.org/problemnew/show/P4003 ...

  3. 洛谷P3128 [USACO15DEC]最大流Max Flow

    P3128 [USACO15DEC]最大流Max Flow 题目描述 Farmer John has installed a new system of N-1N−1 pipes to transpo ...

  4. P3128 [USACO15DEC]最大流Max Flow(LCA+树上差分)

    P3128 [USACO15DEC]最大流Max Flow 题目描述 Farmer John has installed a new system of  pipes to transport mil ...

  5. luoguP3128 [USACO15DEC]最大流Max Flow 题解(树上差分)

    链接一下题目:luoguP3128 [USACO15DEC]最大流Max Flow(树上差分板子题) 如果没有学过树上差分,抠这里(其实很简单的,真的):树上差分总结 学了树上差分,这道题就极其显然了 ...

  6. 洛谷3128 [USACO15DEC]最大流Max Flow——树上差分

    题目:https://www.luogu.org/problemnew/show/P3128 树上差分.用离线lca,邻接表存好方便. #include<iostream> #includ ...

  7. 洛谷P3128 [USACO15DEC]最大流Max Flow(树上差分)

    题意 题目链接 Sol 树上差分模板题 发现自己傻傻的分不清边差分和点差分 边差分就是对边进行操作,我们在\(u, v\)除加上\(val\),同时在\(lca\)处减去\(2 * val\) 点差分 ...

  8. 洛谷P3128 [USACO15DEC]最大流Max Flow (树上差分)

    ###题目链接### 题目大意: 给你一棵树,k 次操作,每次操作中有 a  b 两点,这两点路上的所有点都被标记一次.问你 k 次操作之后,整棵树上的点中被标记的最大次数是多少. 分析: 1.由于数 ...

  9. [USACO15DEC]最大流Max Flow(树上差分)

    题目描述: Farmer John has installed a new system of N−1N-1N−1 pipes to transport milk between the NNN st ...

随机推荐

  1. HAOI 2006 受欢迎的牛 (洛谷2341)

    题目描述 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所有奶 牛都是自恋狂,每头奶牛总是喜欢自己的.奶牛之间的"喜欢"是可以传递的--如果A喜 欢B,B喜 ...

  2. 双目立体匹配经典算法之Semi-Global Matching(SGM)概述:代价聚合(Cost Aggregation)

      由于代价计算步骤只考虑了局部的相关性,对噪声非常敏感,无法直接用来计算最优视差,所以SGM算法通过代价聚合步骤,使聚合后的代价值能够更准确的反应像素之间的相关性,如图1所示.聚合后的新的代价值保存 ...

  3. NX二次开发-UFUN导入表达式UF_MODL_import_exp

    最近在做表达式创建,发现UFUN的创建表达式函数UF_MODL_create_exp,UF_MODL_create_exp_tag没有办法创建字符串类型的表达式,例如AA="BB" ...

  4. BZOJ3211花神游历各国-线段树&树状数组-(HDU4027同类型)

    (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 题意:BZOJ HDU  原题目描述在最下面.  两种操作,1:把区间的数字开方一次,2:区间求和. 思路: 线段树:  显然不能暴力 ...

  5. python从入门到大神---4、python3文件操作最最最最简单实例

    python从入门到大神---4.python3文件操作最最最最简单实例 一.总结 一句话总结: python文件操作真的很简单,直接在代码中调用文件操作的函数比如open().read(),无需引包 ...

  6. element ui 查询过滤

    1.搜索框v-model="searchText" 2.data 声明searchText:"" 3.el-table:data="tables&qu ...

  7. Jeecg 容器初始化监听器

    文件位置: F:\jeecg-bpm-3.8\jeecg-bpm-3.8-master\jeecg-bpm-3.8\src\main\java\org\jeecgframework\web\syste ...

  8. k8s 映射 外部服务

    把外部的服务,通过创建service和endpoint,把它映射到k8s内部来使用. 操作步骤: 在10.0.0.13上安装数据库 yum install mariadb-server -y syst ...

  9. 好消息:Dubbo & Spring Boot要来了

    Duboo和Spring Boot都是非常优秀的框架,现在它们要结合了.为了简化Dubbo开发集成,阿里Dubbo团队将发布基于Spring Boot的版本,可快速上手Dubbo的分布式开发,并提供了 ...

  10. LA 3263 /// 欧拉定理 oj21860

    题目大意: n个端点的一笔画 第n个和第1个重合 即一笔画必定是闭合曲线 输出平面被分成的区域数 欧拉定理 V+F-E=2 即 点数+面数-边数=2 (这里的面数包括了外部) #include < ...