【洛谷 2161】 [Shoi2009]Booking 会场预约
2016-03-10 19:01
232 查看
洛谷真良心 这是BZOJ的权限题.....
明明树状数组很好做 我偏偏用线段树
明明在线很好做 我偏偏离线
.
.
.
.
简直作死 又调试了一下午 !!
线段树 最小值 区间标记时注意下!!! 宁可多取几次min 做几个无用功没事 说不定少了那个就wa上半天!!!
明明树状数组很好做 我偏偏用线段树
明明在线很好做 我偏偏离线
.
.
.
.
简直作死 又调试了一下午 !!
线段树 最小值 区间标记时注意下!!! 宁可多取几次min 做几个无用功没事 说不定少了那个就wa上半天!!!
#include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #define MAXN 1000000 using namespace std; int init[200000+1][3]; //0 A B 1s 2t bool b[200000+1]; int cnt[200000+1]; int n; int a[100000*4],m[100000*4]; void Pushdown(int now) { m[now*2]=min(m[now*2],m[now]); a[now*2]=min(a[now*2],m[now*2]); m[now*2+1]=min(m[now*2+1],m[now]); a[now*2+1]=min(a[now*2+1],m[now*2+1]); // m[now]=100000000; } void Change(int now,int L,int R,int s,int t,int k) { // cout<<now<<' '<<a[now]<<' '<<L<<' '<<R<<' '<<s<<' '<<t<<' '<<k<<endl; if(s<=L&&R<=t) { m[now]=min(m[now],k); a[now]=m[now]; return ; } if(m[now]!=100000000) Pushdown(now); int mid=(L+R)/2; if(s<=mid) Change(now*2,L,mid,s,t,k); if(mid+1<=t) Change(now*2+1,mid+1,R,s,t,k); a[now]=min(a[now*2],a[now*2+1]); } int Query(int now,int L,int R,int s,int t) { //cout<<now<<' '<<a[now]<<' '<<L<<' '<<R<<' '<<s<<' '<<t<<' '<<endl; if(s<=L&&R<=t) return a[now]; if(m[now]!=100000000) Pushdown(now); int mid=(L+R)/2,ans=100000000; if(s<=mid) ans=min(ans,Query(now*2,L,mid,s,t)); if(mid+1<=t) ans=min(ans,Query(now*2+1,mid+1,R,s,t)); return ans; } int main() { // fr0eopen("a.in","r",stdin); // fr0eopen("test.out","w",stdout); for(int i=1;i<100000*4;i++) m[i]=100000000,a[i]=100000000; cin>>n; char c; for(int i=1;i<=n;i++) { cin>>c; if(c=='A') init[i][0]=0,scanf("%d %d",&init[i][1],&init[i][2]); else init[i][0]=1; } for(int i=n;i>=1;i--) if(init[i][0]==0) { int tmp=Query(1,1,100000,init[i][1],init[i][2]);// cout<<i<<' '<<tmp<<endl; if(tmp==100000000) b[i]=true; else cnt[tmp]++; Change(1,1,100000,init[i][1],init[i][2],i); } int sum=0; for(int i=1;i<=n;i++) { if(init[i][0]==0) sum=sum+1-cnt[i],printf("%d\n",cnt[i]); if(init[i][0]==1) printf("%d\n",sum); } return 0; }
相关文章推荐
- 【BZOJ 1798】[Ahoi2009]Seq 维护序列seq
- 【CodeVS 1540】银河英雄传说 2002年NOI全国竞赛
- 【洛谷 1991】 无线通讯网
- 【洛谷 1345】 奶牛的电信
- 【BZOJ 3990】 [SDOI2015]排序
- 【BZOJ 2705】 [SDOI2012]Longge的问题
- 【BZOJ 1934】 [Shoi2007]Vote 善意的投票
- 【BZOJ 1433】 [ZJOI2009]假期的宿舍
- 【COGS 1873】 [国家集训队2011]happiness(吴确)
- 【Poj 3469】 Dual Core CPU
- 【BZOJ 3504 】[Cqoi2014]危桥
- 【CodeVS 1227】 方格取数2
- 【CodeVS 1028】 花店橱窗布置
- 【Poj 1149】PIGS
- Ubuntu12.04LST 下 Django+uwsgi+nginx部署
- 【Poj 2112】 Optimal Milking
- 【Poj 3436】 ACM Computer Factory
- 【Poj 1273】 Drainage Ditches
- 剑指offer 矩形覆盖
- 自我介绍学期期望及问题