题目大意:给出一棵树,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. Unity编辑器 - Undo的坑

    Unity编辑器 - Undo的坑 编辑器通过脚本中改变值,Undo.RecordObject可能会无效,应该使用: Undo.RegisterCompleteObjectUndo(Object ob ...

  2. [CF19B]Checkout Assistant

    题目描述 Bob 来到一家现购自运商店,将 n 件商品放入了他的手推车,然后到收银台 付款.每件商品由它的价格 pi 和收银员扫描它的时间 ti 秒定义.当收银员正在扫 描某件商品时,Bob 可以从他 ...

  3. Solr与Elasticsearch区别

    Elasticsearch Elasticsearch是一个实时的分布式搜索和分析引擎.它可以帮助你用前所未有的速度去处理大规模数据. 它可以用于全文搜索,结构化搜索以及分析. 优点 Elastics ...

  4. CSP201403-2:窗口

    引言:CSP(http://www.cspro.org/lead/application/ccf/login.jsp)是由中国计算机学会(CCF)发起的"计算机职业资格认证"考试, ...

  5. n! 阶乘

    其实1.2.3.4.6.7…都是可以不用考虑的,因此选择以5为迭代步数即可. 首先,这些数字都可以不用进行%5(对5取余数)运算,因此每次循环时可以直接将函数的count变量直接加1.其次,考虑25. ...

  6. @ConfigurationProperties注解对数据的自动封装

    @ConfigurationProperties注解对数据的自动封装 @ConfigurationProperties可以对基本数据类型实现自动封装,可以封装格式为yyyy/MM/dd的日期 测试代码 ...

  7. asp.net mvc5 模式的现象思考

    .net mv5简化了一些应用逻辑,与其说是mvc架构模式,不如说应用.net Entity更好. 现在你只需要去随便创建一个类 相关数据 然后用一个类去继承 DbContext 定义一个 DbSet ...

  8. POJ 1739 Tony's Tour(插头DP)

    Description A square township has been divided up into n*m(n rows and m columns) square plots (1< ...

  9. mysql mariadb 密码设置

    原文:https://my.oschina.net/uyunsky/blog/109532 一.初始安装 Method 1:在/usr/local/mysql/bin/下:./mysqladmin - ...

  10. 20172330 2017-2018-1 《Java程序设计》第八周学习总结

    学号 2017-2018-1 <程序设计与数据结构>第八周学习总结 教材学习内容总结 这一章主要是对多态性的学习: 由继承实现多态性 多态性引用能够随时间变化指向不同类型的对象. 对于多态 ...