树剖LCA+树上差分。

树上差分的基本操作。

#include <queue>
#include <iostream>
#include <cstdio>
using namespace std;
const int N=100005;
int head[N],ecnt,dfn[N],top[N],son[N],fa[N],tim,dep[N],siz[N],rnk[N],nums[N],sum[N];
struct Edge{int to,nxt;}e[N<<1];
void add(int bg,int ed) {e[++ecnt].nxt=head[bg];e[ecnt].to=ed;head[bg]=ecnt;}
void dfs1(int x) {
siz[x]=1;
for(int i=head[x];i;i=e[i].nxt) {
int v=e[i].to;
if(v!=fa[x]){nums[x]++;fa[v]=x;dep[v]=dep[x]+1;dfs1(v);siz[x]+=siz[v];son[x]=siz[v]>siz[son[x]]?v:son[x];}
}
}
void dfs2(int x,int qtop) {
top[x]=qtop;dfn[x]=++tim;rnk[tim]=x;
if(son[x]) dfs2(son[x],qtop);
for(int i=head[x];i;i=e[i].nxt){
int v=e[i].to;
if(v!=fa[x]&&v!=son[x]) {dfs2(v,v);}
}
}
int lca(int x,int y) {
while(top[x]!=top[y]) {
(dep[top[x]]>=dep[top[y]])?x=fa[top[x]]:y=fa[top[y]];
}
return dep[x]>dep[y]?y:x;
}
int n,K;
int main() {
scanf("%d%d",&n,&K);
for(int i=1,x,y;i<n;i++) {scanf("%d%d",&x,&y);add(x,y);add(y,x);}
dfs1(1);dfs2(1,1);
for(int i=1,x,y;i<=K;i++) {
scanf("%d%d",&x,&y);
int LCA=lca(x,y);
sum[x]++,sum[y]++,sum[LCA]--,sum[fa[LCA]]--;
}
queue<int>q;
for(int i=1;i<=n;i++) if(siz[i]==1) q.push(i);
int ans=0;
while(!q.empty()) {
int u=q.front();q.pop();
int v=fa[u];
nums[v]--;
sum[v]+=sum[u];
ans=max(ans,sum[v]);
if(!nums[v]) q.push(v);
}
printf("%d",ans);
}

[USACO15DEC]最大流Max Flow的更多相关文章

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

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

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

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

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

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

  4. 洛谷P3128 [USACO15DEC]最大流Max Flow [树链剖分]

    题目描述 Farmer John has installed a new system of  pipes to transport milk between the  stalls in his b ...

  5. 洛谷P3128 [USACO15DEC]最大流Max Flow [倍增LCA]

    题目描述 Farmer John has installed a new system of  pipes to transport milk between the  stalls in his b ...

  6. luogu P3128 [USACO15DEC]最大流Max Flow (树上差分)

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

  7. 树上差分——点差分裸题 P3128 [USACO15DEC]最大流Max Flow

    讲解: https://rpdreamer.blog.luogu.org/ci-fen-and-shu-shang-ci-fen #include <bits/stdc++.h> #def ...

  8. P3128 [USACO15DEC]最大流Max Flow

    思路 这个题哪里有那么费脑筋 我们可以树链剖分嘛LCT昨天学的时候睡着了,不是太会 两遍dfs+一个5行的BIT 其实树链剖分学好了对倍增和LCT理解上都有好处 一条路径上的修改 由于一条剖出来的链是 ...

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

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

  10. [USACO15DEC]最大流Max Flow(树链剖分,线段树)

    FJ给他的牛棚的N(2≤N≤50,000)个隔间之间安装了N-1根管道,隔间编号从1到N.所有隔间都被管道连通了. FJ有K(1≤K≤100,000)条运输牛奶的路线,第i条路线从隔间si运输到隔间t ...

随机推荐

  1. 【转】C# ArcgisEngine开发中,对一个图层进行过滤,只显示符合条件的要素

    有时候,我们要对图层上的地物进行有选择性的显示,以此来满足实际的功能要求. 按下面介绍的方法可轻松实现图层属性过滤显示: 1.当图层已经加载时 private void ShowByFilter(Ax ...

  2. Android Cursor浅析

    1. 本文目的 Android ContentProvider提供了进程间数据交换的一种机制.而数据库的查询就是这样的机制的应用.那么app通过Uri查询数据库而得到的Cursor到底是个什么东西?为 ...

  3. layer iframe加载单个图片或者加载页面

    加载单个图片 layer.open({ type: , title: false, closeBtn: , area: '150px', skin: 'layui-layer-nobg', //没有背 ...

  4. java连接mysql数据库增删改查操作记录

    1. 连接数据库.得到数据库连接变量 注意连接数据库的时候 (1)打开DB Browser 新建一个Database Driver,注意加入Driver JARs的时候加入的包,我的是mysql-co ...

  5. HDU1237 简单计算器 【栈】+【逆波兰式】

    简单计算器 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  6. jQuery幻灯片插件Owl Carousel

    简介 Owl Carousel 是一个强大.实用但小巧的 jQuery 幻灯片插件,它具有一下特点: 兼容所有浏览器 支持响应式 支持 CSS3 过度 支持触摸事件 支持 JSON 及自定义 JSON ...

  7. python matplot 绘图

    import numpy as np import matplotlib.pyplot as plt plt.figure(1) # 创建图表1 plt.figure(2) # 创建图表2 ax1 = ...

  8. 常见DDOS攻击原理和防御

    常见的DDOS攻击主要分为流量型攻击和cc攻击: 流量型攻击主要通过发送大量的非法报文侵占正常业务带宽 包括SYN Flood/ SYN-ACK Flood /ACK Flood/ FIN/RST F ...

  9. ThinkPHP5+Redis单例型购物车

    <?php /** * Redis + 单例型购物车 * param $basket 存储商品信息 * param $ins 存储实例化对象 */ namespace lib; use redi ...

  10. C# 遍历文件夹及子目录下所有图片.

    要求:取指定目录下面的所有图片,以表格的型式展示并显示该图片的相对路径. 服务端代码: public partial class ViewIcon : System.Web.UI.Page { JAr ...