[堆 折线] UOJ#205 & BZOJ4585 【APIO2016】Fireworks
来源:互联网 发布:注册了com的域名能卖吗 编辑:程序博客网 时间:2024/05/19 20:45
大概是一个子树中的
具体看这里
#include <cstdio>#include <iostream>#include <algorithm>using namespace std;typedef long long ll;const int N=1200010;int n,m,cnt,fa[N],G[N];struct edge{ int t,w,nx;}E[N];inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++;}inline void read(int &x){ char c=nc(); x=0; for(;c>'9'||c<'0';c=nc());for(;c>='0'&&c<='9';x=x*10+c-'0',c=nc());}inline void addedge(int x,int y,int w){ E[++cnt].t=y; E[cnt].nx=G[x]; G[x]=cnt; E[cnt].w=w;}struct node{ node *l,*r; ll v;}p[N],*rt[N],*t;inline int ran(){ static int x=31253125; x+=(x<<4)+1; return x&65536;}inline node *New(ll x){ t->v=x; t->l=t->r=0; return t++;}node *Merge(node *x,node *y){ if(!x || !y) return !x?y:x; if(x->v<y->v) swap(x,y); ran()?x->l=Merge(x->l,y):x->r=Merge(x->r,y); return x;}inline void Pop(int v){ rt[v]=Merge(rt[v]->l,rt[v]->r);}ll ans;int main(){ freopen("1.in","r",stdin); freopen("1.out","w",stdout); read(n); read(m); t=p; for(int i=2,p,w;i<=n+m;i++) read(p),read(w),addedge(p,i,w),ans+=w; for(int i=n+1;i<=n+m;i++) rt[i]=Merge(rt[i],Merge(New(0),New(0))); for(int x=n;x;x--){ int d=0; for(int i=G[x];i;i=E[i].nx){ int v=E[i].t; ll L,R; R=rt[v]->v; Pop(v); L=rt[v]->v,Pop(v); rt[v]=Merge(rt[v],New(L+E[i].w)); rt[v]=Merge(rt[v],New(R+E[i].w)); rt[x]=Merge(rt[x],rt[v]); d++; } for(int i=1;i<d;i++) Pop(x); } Pop(1); while(rt[1]) ans-=rt[1]->v,Pop(1); cout<<ans<<endl; return 0;}
阅读全文
0 0
- [堆 折线] UOJ#205 & BZOJ4585 【APIO2016】Fireworks
- UOJ 205 [APIO2016]Fireworks
- BZOJ4585 [Apio2016]烟火表演
- BZOJ4585: [Apio2016]烟火表演
- UOJ#206. 【APIO2016】Gap
- UOJ 206 [APIO2016]Gap
- [UOJ#206][Apio2016]Gap(分块+数学相关)
- BZOJ 4585 [Apio2016]烟火表演 可并堆
- [堆与斜率] BZOJ 4585: [Apio2016]烟火表演
- [DP 可并堆维护凸包优化] BZOJ 4585 [Apio2016]烟火表演
- APIO2016游记
- APIO2016游记
- APIO2016总结
- Apio2016 游记
- APIO2016总结
- APIO2016 题解
- APIO2016滚粗记
- [UOJ 111][APIO 2015]Jakarta Skyscrapers(Dijkstra+pbds堆暴力)
- Intellij idea创建javaWeb项目
- Spring Boot 搭建部署流程及部署过程中可能出现的部分问题
- 快速幂
- 第一个bootstrap文件
- 对于C语言的感想
- [堆 折线] UOJ#205 & BZOJ4585 【APIO2016】Fireworks
- Mvp复杂 二级购物车加删除
- sdnu 1078
- 20171211-search
- python list类型复制(传值,不传值)
- pow和exp
- java方法中参数要不要加final
- Android 布局深度优化分析(减少布局层次)
- 动态规划之最少硬币找零问题