热门搜索: 个人免签支付 素材网站源码 图片素材站源码 游戏源码 js广告 jquery选项卡 jQuery导航
2021-03-20 02:24
标签:insert 断点 scan amp max return div ace algorithm code: #include #include #include #include #include #include #define N 300005 #define MAX 320005 #define setIO(s) freopen(s".in","r",stdin) ,freopen(s".out","w",stdout) using namespace std; int n; int rt[MAX]; namespace tr { #define lson s[x].ls #define rson s[x].rs int tot; int newnode() { return ++tot; } int lowbit(int x) { return x&(-x); } struct node { int ls,rs,sum; }s[MAX*100]; void update(int &x,int l,int r,int p,int v) { if(!x) x=newnode(); s[x].sum+=v; if(l==r) return; int mid=(l+r)>>1; if(p=L&&r>1,re=0; if(Lmid) re+=query(rson,mid+1,r,L,R); return re; } void upd(int x,int y,int v) { for(int i=x;ii+1 setS; set::iterator it; int Q,T,swi[N]; void con(int x,int y) { it=S.lower_bound(x); int l,r,L,R; if(it==S.begin()) l=1,r=x; else --it,l=(*it)+1,r=x; it=S.lower_bound(x); it++; if(it==S.end()) L=x+1,R=n+1; else L=x+1,R=(*it); S.erase(x); tr::upd(l,L,Q-T); tr::upd(l,R+1,T-Q); tr::upd(r+1,L,T-Q); tr::upd(r+1,R+1,Q-T); } void clo(int x,int y) { // printf("%d %d\n",x,y); S.insert(x); it=S.lower_bound(x); int l,r,L,R; if(it==S.begin()) l=1,r=x; else --it,l=(*it)+1,r=x; it=S.lower_bound(x); it++; if(it==S.end()) L=x+1,R=n+1; else L=x+1,R=(*it); tr::upd(l,L,T-Q); tr::upd(l,R+1,Q-T); tr::upd(r+1,L,Q-T); tr::upd(r+1,R+1,T-Q); } int ask(int x,int y) { int re=tr::que(x,y); set::iterator X,Y; X=S.lower_bound(x); Y=S.lower_bound(y); if(X==Y) re-=Q-T; return re; } int main() { // setIO("input"); int i,j; scanf("%d%d%s",&n,&Q,str+1); // t=0 for(i=1;i luoguP5445 [APIO2019]路灯 树套树+set 标签:insert 断点 scan amp max return div ace algorithm 原文地址:https://www.cnblogs.com/guangheli/p/12312735.html
标签:insert 断点 scan amp max return div ace algorithm
code:
#include #include #include #include #include #include #define N 300005 #define MAX 320005 #define setIO(s) freopen(s".in","r",stdin) ,freopen(s".out","w",stdout) using namespace std; int n; int rt[MAX]; namespace tr { #define lson s[x].ls #define rson s[x].rs int tot; int newnode() { return ++tot; } int lowbit(int x) { return x&(-x); } struct node { int ls,rs,sum; }s[MAX*100]; void update(int &x,int l,int r,int p,int v) { if(!x) x=newnode(); s[x].sum+=v; if(l==r) return; int mid=(l+r)>>1; if(p=L&&r>1,re=0; if(Lmid) re+=query(rson,mid+1,r,L,R); return re; } void upd(int x,int y,int v) { for(int i=x;ii+1 setS; set::iterator it; int Q,T,swi[N]; void con(int x,int y) { it=S.lower_bound(x); int l,r,L,R; if(it==S.begin()) l=1,r=x; else --it,l=(*it)+1,r=x; it=S.lower_bound(x); it++; if(it==S.end()) L=x+1,R=n+1; else L=x+1,R=(*it); S.erase(x); tr::upd(l,L,Q-T); tr::upd(l,R+1,T-Q); tr::upd(r+1,L,T-Q); tr::upd(r+1,R+1,Q-T); } void clo(int x,int y) { // printf("%d %d\n",x,y); S.insert(x); it=S.lower_bound(x); int l,r,L,R; if(it==S.begin()) l=1,r=x; else --it,l=(*it)+1,r=x; it=S.lower_bound(x); it++; if(it==S.end()) L=x+1,R=n+1; else L=x+1,R=(*it); tr::upd(l,L,T-Q); tr::upd(l,R+1,Q-T); tr::upd(r+1,L,Q-T); tr::upd(r+1,R+1,T-Q); } int ask(int x,int y) { int re=tr::que(x,y); set::iterator X,Y; X=S.lower_bound(x); Y=S.lower_bound(y); if(X==Y) re-=Q-T; return re; } int main() { // setIO("input"); int i,j; scanf("%d%d%s",&n,&Q,str+1); // t=0 for(i=1;i
luoguP5445 [APIO2019]路灯 树套树+set
原文地址:https://www.cnblogs.com/guangheli/p/12312735.html
上一篇:Windows虚拟器的安装与使用
下一篇:deepin-wine-qq无法加载图片解决方案