记录编号 343859 评测结果 AAAAAAAAAA
题目名称 Color the Axis 最终得分 100
用户昵称 GravatarExtreme°/极致 ° 是否通过 通过
代码语言 C++ 运行时间 2.417 s
提交时间 2016-11-09 18:54:45 内存使用 1.34 MiB
显示代码纯文本
  1. #include<cstdio>
  2. using namespace std;
  3. typedef long long ll;
  4. const int N =800005;
  5. int n,m;
  6. int flag[N];
  7. inline int lson(int rt){return (rt<<1);}
  8. inline int rson(int rt){return (rt<<1)|1;}
  9. void update(int L,int R,int l,int r,int rt){
  10. if(flag[rt])return;
  11. if(L<=l && r<=R){
  12. flag[rt]=r-l+1;
  13. return;
  14. }
  15. int mid=(l+r)>>1;
  16. if(mid>=L) update(L,R,l,mid,lson(rt));
  17. if(mid<R) update(L,R,mid+1,r,rson(rt));
  18. }
  19. int query(int l,int r,int rt){
  20. if(flag[rt])return flag[rt];
  21. if(l==r)return 0;
  22. int mid=(l+r)>>1,ans=0;
  23. ans+=query(l,mid,lson(rt));
  24. ans+=query(mid+1,r,rson(rt));
  25. return ans;
  26. }
  27. int main(){
  28.  
  29. freopen("axis.in","r",stdin);
  30. freopen("axis.out","w",stdout);
  31. int i,l,r;
  32. scanf("%d%d",&n,&m);
  33. for(i=1;i<=m;i++){
  34. scanf("%d%d",&l,&r);
  35. update(l,r,1,n,1);
  36. printf("%d\n",n-query(1,n,1));
  37. }
  38. return 0;
  39. }
  40.