博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 4372 烁烁的游戏——动态点分治+树状数组
阅读量:6893 次
发布时间:2019-06-27

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

题目:

和 bzoj 3070 震波 是一个套路。注意区间修改的话,树状数组不能表示 dis = 0 的位置,所以要手动改父亲的点权数组。

#include
#include
#include
#include
#define ll long longusing namespace std;const int N=1e5+5,K=20;int n,w[N],hd[N],xnt,to[N<<1],nxt[N<<1],siz[N],rt,mn;int pre[N][K],dep[N],dis[N][K],fs[N],gs[N]; vector
f[N],g[N];bool vis[N];int rdn(){ int ret=0;bool fx=1;char ch=getchar(); while(ch>'9'||ch<'0'){
if(ch=='-')fx=0;ch=getchar();} while(ch>='0'&&ch<='9')ret=ret*10+ch-'0',ch=getchar(); return fx?ret:-ret;}int Mx(int a,int b){
return a>b?a:b;}int Mn(int a,int b){
return a
d)continue; add(pre[cr][i],d-dis[cr][i],k); w[pre[cr][i]]+=k;///// addx(pre[cr][i+1],d-dis[cr][i],k); }}ll query(int cr){ ll ret=w[cr]; for(int i=dep[cr]-1;i;i--) { ret+=qry(pre[cr][i],dis[cr][i]); ret-=qryx(pre[cr][i+1],dis[cr][i]); } return ret;}int main(){ n=rdn(); int Q=rdn(); for(int i=1,u,v;i

 

转载于:https://www.cnblogs.com/Narh/p/10187308.html

你可能感兴趣的文章
ppc64le centos7 安装confd 并结合etcd实现haproxy的高可用
查看>>
呼叫中心 ACD 系统的介绍
查看>>
使用PowerShell定时批量结束Citrix Xen App Session
查看>>
js本地缓存,页面传值
查看>>
Grafana3.1.0安装步骤
查看>>
c++获取进程的运行路径
查看>>
oracle 日常操作
查看>>
我的友情链接
查看>>
高级I/O---多路复用---poll
查看>>
计算机集群多任务投递脚本
查看>>
Flume数据采集之常见集群配置案例
查看>>
自定义ANDROID中EDITTEXT中的HINT文本的大小
查看>>
Unity3D下用C#通过WinSCP命令行方式给Linux服务器SCP传文件
查看>>
Fedora遇难记之rpmfusion:获取 GPG 密钥失败
查看>>
Exception
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
VC改变鼠标的WM_SETCURSOR( setcursor() )
查看>>
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
查看>>
Leetcode PHP题解--D82 13. Roman to Integer
查看>>