博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P3261 [JLOI2015]城池攻占
阅读量:6676 次
发布时间:2019-06-25

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

思路

左偏树维护每个骑士的战斗力和加入的深度(因为只能向上跳)

注意做乘法的时候加法tag会受到影响

代码

#include 
#include
#include
#define int long long using namespace std;struct Node{ int lson,rson,dis,num,mul,add,add_dep,sz,fa,id;}LT[300100];int n,m,u[300100<<1],v[300100<<1],fir[300100],nxt[300100<<1],cnt,fa[300100],S[300100],C[300100],A[300100],V[300100],H[300100],root[300100],ans_city[300100],ans_man[300100],dep[300100];int find(int x){ if(LT[x].fa==x) return x; else return LT[x].fa=find(LT[x].fa);}void pushup(int o){ LT[o].sz=LT[LT[o].lson].sz+LT[LT[o].rson].sz+1;}void pushdown(int o){ if(LT[o].mul!=1){ LT[LT[o].lson].num*=LT[o].mul; LT[LT[o].rson].num*=LT[o].mul; LT[LT[o].lson].mul*=LT[o].mul; LT[LT[o].rson].mul*=LT[o].mul; LT[LT[o].lson].add*=LT[o].mul; LT[LT[o].rson].add*=LT[o].mul; LT[o].mul=1; } if(LT[o].add){ LT[LT[o].lson].num+=LT[o].add; LT[LT[o].rson].num+=LT[o].add; LT[LT[o].lson].add+=LT[o].add; LT[LT[o].rson].add+=LT[o].add; LT[o].add=0; }}int merge(int x,int y){ if(x*y==0) return x+y; pushdown(x); pushdown(y); if(LT[x].num>LT[y].num) swap(x,y); LT[x].rson=merge(LT[x].rson,y); if(LT[LT[x].lson].dis
=1&<[root[u]].num
=1){ ans_man[LT[root[1]].id]=LT[root[1]].add_dep; root[1]=pop(root[1]); } for(int i=1;i<=n;i++){ printf("%lld\n",ans_city[i]); } for(int i=1;i<=m;i++) { printf("%lld\n",ans_man[i]); } return 0;}

转载于:https://www.cnblogs.com/dreagonm/p/10546169.html

你可能感兴趣的文章
硬链接和软链接(2)
查看>>
几种REST服务JAVA客户端类库
查看>>
什么是Hijax?Hijax的原理及优缺点介绍
查看>>
Linux面试记录
查看>>
端口状态说明 LISTENING、ESTABLISHED、TIME_WAIT及CLOSE_WAIT
查看>>
OutOfMemoryError: GC overhead limit exceede
查看>>
python os模块常用函数使用方法大全
查看>>
我的友情链接
查看>>
【2016-03-17】移动互联网时代,看好你的隐私
查看>>
linux命令:编译安装postfix邮件服务
查看>>
vi命令集
查看>>
oracle数据库克隆
查看>>
输出 pdf
查看>>
PHPCMS一个BUG
查看>>
APP云测试
查看>>
3-unit3 高速缓存DNS
查看>>
spark mllib 协同过滤算法,基于余弦相似度的用户相似度计算
查看>>
openwrt 基于qmi的 3G|4G拨号
查看>>
俞敏洪励志语
查看>>
ICU Layout Engine
查看>>