博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
luogu4074-[WC2013]糖果公园
阅读量:6070 次
发布时间:2019-06-20

本文共 2036 字,大约阅读时间需要 6 分钟。

Description

Solution

树上莫队 && 带修莫队.

代码

#include
#include
#include
#include
#include
#include
#include
using namespace std;#define rep(i,l,r) for(register int i=(l);i<=(r);++i)#define repdo(i,l,r) for(register int i=(l);i>=(r);--i)#define il inlinetypedef double db;typedef long long ll;//---------------------------------------const int nsz=1e5+50,msz=1e5+50,qsz=1e5+50;int n,m,nq,v[msz],w[nsz],blk;struct te{int t,pr;}edge[nsz*2];int hd[nsz],pe=1;void adde(int f,int t){edge[++pe]=(te){t,hd[f]};hd[f]=pe;}void adddb(int f,int t){adde(f,t);adde(t,f);}int vis[nsz],eul[nsz*3],peu=0,d[nsz];int in[nsz],out[nsz],seq[nsz*2],ps=0;int l2n[nsz*3],stt[20][nsz*3];void dfs(int p,int fa){ seq[++ps]=p,in[p]=ps; eul[++peu]=p,vis[p]=peu; d[p]=d[fa]+1; for(int i=hd[p],v;i;i=edge[i].pr){ v=edge[i].t; if(v==fa)continue; dfs(v,p); eul[++peu]=p; } seq[++ps]=p,out[p]=ps;}int dmin(int a,int b){return d[a]
b)swap(a,b); int l=l2n[b-a+1]; return dmin(stt[l][a],stt[l][b-(1<
in[r])swap(l,r); ++pq,q[pq]=(tq){lca(l,r)==l?in[l]:out[l],in[r],pc,pq};}void solp(int p){ if(get[p])ans0-=(ll)w[cnt[col[p]]--]*v[col[p]]; else ans0+=(ll)w[++cnt[col[p]]]*v[col[p]]; get[p]^=1;}void solc(int p,int c){ if(get[p])solp(p),col[p]=c,solp(p); else col[p]=c;}void mo(){ sort(q+1,q+pq+1,cmp); int t=0,l=1,r=0; rep(i,1,pq){ while(t
q[i].t)solc(c[t].p,c[t].f),--t; while(l
q[i].l)solp(seq[--l]); while(r
q[i].r)solp(seq[r--]); int x=seq[l],y=seq[r],lc=lca(x,y); if(x!=lc&&r!=lc)solp(lc),ans[q[i].id]=ans0,solp(lc); else ans[q[i].id]=ans0; }}int main(){ ios::sync_with_stdio(0),cin.tie(0); cin>>n>>m>>nq; rep(i,1,m)cin>>v[i]; rep(i,1,n)cin>>w[i]; int a,b,c; rep(i,1,n-1)cin>>a>>b,adddb(a,b); rep(i,1,n)cin>>col[i],now[i]=col[i]; sttinit(); blk=pow(n,2.0/3); rep(i,1,ps)inb[i]=(i-1)/blk+1; rep(i,1,nq){ cin>>a>>b>>c; if(a==0)::c[++pc]=(tc){b,now[b],c},now[b]=c; else addq(b,c); } mo(); rep(i,1,pq)cout<
<<'\n'; return 0;}

转载于:https://www.cnblogs.com/ubospica/p/10276897.html

你可能感兴趣的文章
Netty Pipeline源码分析(1)
查看>>
Elasticsearch Java Low Level REST Client(嗅探器)
查看>>
WIN10下VB安装Centos7桥接模式并配置静态IP
查看>>
Slog19_支配vue框架模版语法之v-bind
查看>>
网易云音乐接口+vue全家桶开发一款移动端音乐webApp
查看>>
[LeetCode] Island Perimeter
查看>>
python大佬养成计划----excel操作
查看>>
[LeetCode]括号生成(Generate Parentheses)
查看>>
机器学习从业人员到底做什么?
查看>>
Laravel-Action 对代码的改造
查看>>
联调环境快速部署——基于docker-compose的CI/CD实践
查看>>
【跃迁之路】【498天】刻意练习系列257(2018.06.18)
查看>>
vue 解决addRoutes动态添加路由后,刷新失效问题
查看>>
Java多线程基础(十一)——Future模式
查看>>
解决Retrofit多BaseUrl及运行时动态改变BaseUrl(二)
查看>>
【深入浅出MyBatis笔记】插件
查看>>
sublime常用基础插件合集
查看>>
React 重温之Render Props
查看>>
聊聊JerseyEurekaHttpClient的参数
查看>>
js 粘贴图片的应用(clipboardData)
查看>>