zoukankan      html  css  js  c++  java
  • BZOJ 2957楼房重建

    传送门

    线段树

    //Twenty
    #include<cstdio>
    #include<cstdlib>
    #include<iostream>
    #include<algorithm>
    #include<cmath>
    #include<cstring>
    #include<queue>
    #include<vector>
    #define lc x<<1
    #define rc x<<1|1
    #define mid ((l+r)>>1)
    const int maxn=100005;
    int a,b,n,m,sg[maxn<<2];
    double sgd[maxn<<2];
    using namespace std;
    inline int read(){
      int ret=0,f=1; char ch=getchar();
      while((ch!='-')&&(ch<'0'||ch>'9')) ch=getchar();
      if(ch=='-') f=-1,ch=getchar();
      for(;ch>='0'&&ch<='9';ch=getchar()) ret=ret*10+ch-'0';
      return ret*f;
    }
    int CUL(double ma,int x,int l,int r){
      if(l==r) {return sgd[x]>ma;}
      if(sgd[lc]<=ma) return CUL(ma,rc,mid+1,r);
      else return sg[x]-sg[lc]+CUL(ma,lc,l,mid);
    }
    void change(int x,int l,int r,int xx,double w){
        if(l==r) {sg[x]=1; sgd[x]=w;return;}
        if(xx<=mid) change(lc,l,mid,xx,w);
        else change(rc,mid+1,r,xx,w);
        sgd[x]=max(sgd[lc],sgd[rc]);
        sg[x]=sg[lc]+CUL(sgd[lc],rc,mid+1,r);
    }
    int main()
    {
       n=read(); m=read();
       while(m--){
         a=read(); b=read();
         change(1,1,n,a,(double)b/a);
         printf("%d
    ",sg[1]); 
       }
       return 0;
    }
    BZOJ 2957楼房重建
  • 相关阅读:
    输出重定向
    echo带颜色输出
    shell学习视频目录
    css盒模型
    jQuery表格模糊搜索
    mysql基础语法3
    mysql基础语法2
    mysql基础语法1
    pyspider框架的使用
    quill富文本框图片上传重写
  • 原文地址:https://www.cnblogs.com/Achenchen/p/7475120.html
Copyright © 2011-2022 走看看