题目大意:给出一棵树,n(n<=5w)个节点,k(k<=10w)次修改,每次给定s和t,把s到t的路径上的点权+1,问k次操作后最大点权。

对于每次修改,给s和t的点权+1,给lca(s,t)和lca(s,t)的父亲的点权-1,每一个点的权就是它与它的子树权和,实际上就是树上的差分,又涨姿势了。。。

代码如下:

uses math;
type
point=^rec;
rec=record
data:longint;
next:point;
end;
var
n,m,x,y,i,ans,fa,kk:longint;
k:point;
d,siz,sum:array[..]of longint;
a:array[..]of point;
p:array[..,..]of longint; procedure dfs(x,fa:longint);
var
k:point;
l:longint;
begin
d[x]:=d[fa]+;
l:=trunc(ln(n)/ln());
p[x,]:=fa;
for i:= to l do
p[x,i]:=p[p[x,i-],i-];
k:=a[x];
while k<>nil do
begin
if k^.data<>fa then dfs(k^.data,x);
k:=k^.next;
end;
end; function lca(x,y:longint):longint;
var
t,l,i:longint;
begin
if d[x]>d[y] then
begin
t:=x;x:=y;y:=t;
end;
if d[x]<d[y] then
begin
l:=trunc(ln(d[y]-d[x])/ln())+;
for i:=l downto do
if d[y]-(<<i)>=d[x] then
y:=p[y,i];
end;
if x<>y then
begin
l:=trunc(ln(d[y])/ln());
for i:=l downto do
if p[x,i]<>p[y,i] then
begin
x:=p[x,i];y:=p[y,i];
end;
x:=p[x,];
end;
exit(x);
end; procedure dfs2(x,fa:longint);
var
k:point;
begin
siz[x]:=sum[x];
k:=a[x];
while k<>nil do
begin
if k^.data<>fa then
begin
dfs2(k^.data,x);
inc(siz[x],siz[k^.data]);
end;
k:=k^.next;
end;
ans:=max(ans,siz[x]);
end; begin
readln(n,kk);
for i:= to n- do
begin
readln(x,y);
new(k);
k^.data:=y;
k^.next:=a[x];
a[x]:=k;
new(k);
k^.data:=x;
k^.next:=a[y];
a[y]:=k;
end;
dfs(,);
for i:= to kk do
begin
readln(x,y);
fa:=lca(x,y);
inc(sum[x]);inc(sum[y]);dec(sum[fa]);
if fa<> then dec(sum[p[fa,]]);
end;
dfs2(,);
writeln(ans);
end.

bzoj4390: [Usaco2015 dec]Max Flow(LCA+树上差分)的更多相关文章

  1. BZOJ4390: [Usaco2015 dec]Max Flow

    BZOJ4390: [Usaco2015 dec]Max Flow Description Farmer John has installed a new system of N−1 pipes to ...

  2. [luogu P3128][USACO15DEC]Max Flow [LCA][树上差分]

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

  3. 【bzoj4390】[Usaco2015 dec]Max Flow LCA

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

  4. [Usaco2015 dec]Max Flow 树上差分

    [Usaco2015 dec]Max Flow Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 353  Solved: 236[Submit][Sta ...

  5. BZOJ 4390: [Usaco2015 dec]Max Flow

    4390: [Usaco2015 dec]Max Flow Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 177  Solved: 113[Submi ...

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

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

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

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

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

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

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

    跟LOJ10131暗的连锁 相似,只是对于\(lca\)节点把它和父亲减一 #include <cstdio> #include <iostream> #include < ...

随机推荐

  1. jieba结巴分词

    pip install jieba安装jieba模块 如果网速比较慢,可以使用豆瓣的Python源:pip install -i https://pypi.douban.com/simple/ jie ...

  2. MySQL☞in语句

    in语句: 1)列名 in(数值1,数值2,数值3…):求出满足该列的多个列值 格式: select 列名1,列名2  from 表名 where 列名 in (数值1,数值2,数值3...) 如下图 ...

  3. Objective-C Block数据类型 @protocol关键字

    Block数据类型 Block封装了一段代码 可以在任何时候执行 Block可以作为函数参数或者函数的返回值 而其本身又可以带输入参数或返回值 苹果官方建议尽量多用Block 在多线程 异步任务 集合 ...

  4. 【jmeter进阶之逻辑控制器】

    jmeter进阶之逻辑控制器  转载   https://www.cnblogs.com/malinalian/p/10491946.html   常用的逻辑控制器 1,循环控制器:可以设置该控制器内 ...

  5. 【转】上线游戏参考数值(Unity)

    转自游戏开发主席 贴图格式: iOS :RGBA 32 (pvrtc 4 ) Android : RGB Compresed ETC 4 或 RGBA 32  . DrawCall: 总计Drawca ...

  6. HTML/JSP中一些单书名号标签的用途<%-- --%><!-- --><%@ %><%! %><% %><%= %>

    注释 <%-- --%>是(JSP)隐式注释,不会在页面显示的注释 <!-- -->是(Html)显示注释,会在JSP页面显示 关于注释还有单行隐式注释//和多行隐式注释/* ...

  7. springMVC第二章

    springMVC第二章 一.URL 映射 可以同时设置多个URL来访问某个控制器或方法.设置value属性: @RequestMapping(value= {"/grade",& ...

  8. 简析@Resource 和 @Autowired的区别

    @Autowird @Autowird 属于spring框架,默认使用类型(byType)进行注入,例如下面代码: @Autowired public IUserService userService ...

  9. Python3 Tkinter-Grid

    1.创建 from tkinter import * root=Tk() lb1=Label(root,text='Hello') lb2=Label(root,text='Grid') lb1.gr ...

  10. Docker学习笔记总结

    Docker学习笔记 https://yeasy.gitbooks.io/docker_practice/content/   一 环境搭建 Ubuntu安装 .添加软件源的GPG密钥 curl -f ...