zoukankan      html  css  js  c++  java
  • Poj2828Buy Tickets线段树

      倒着搞就可以了,先进会被后面覆盖。

    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <climits>
    #include <string>
    #include <iostream>
    #include <map>
    #include <cstdlib>
    #include <list>
    #include <set>
    #include <queue>
    #include <stack>
    #include<math.h>
    using namespace std;
    #define lson l,mid,rt<<1
    #define rson mid+1,r,rt<<1|1
    const int maxn=222222;
    int sum[maxn<<2];
    int color[maxn<<2];
    int a[maxn];int b[maxn];
    void up(int rt)
    {
        sum[rt]= sum[rt<<1]+sum[rt<<1|1];
    }
    
    void build(int l,int r,int rt)
    {
        color[rt]=0;
        if(l==r){
            sum[rt]=1; return ;
        }
        int mid=(l+r)>>1;
        build(lson);
        build(rson);
        up(rt);
    }
    
    void update(int ans,int add,int l,int r,int rt)
    {
        if(l==r){
            sum[rt]-=1; color[rt]= add;
            return ;
        }
        int mid=(l+r)>>1;
        if(ans<=sum[rt<<1]) update(ans,add,lson);
        else update(ans-sum[rt<<1],add,rson);
        up(rt);
    }
    
    void ask(int key,int l,int r,int rt)
    {
        if(l==r){
            printf("%d ",color[rt]) ;return ;
        }
        int mid=(l+r)>>1;
        if(key<=mid) ask(key,lson);
        else ask(key,rson);
    }
    
    int main()
    {
        int n;
        while(scanf("%d",&n)!=EOF){
            build(1,n,1);
            for(int i=0;i<n;i++){
                scanf("%d%d",&a[i],&b[i]);
            }
            for(int i=n-1;i>=0;i--){
                update(a[i]+1,b[i],1,n,1);
            }
            for(int i=1;i<=n;i++)
                ask(i,1,n,1);
            cout<<endl;
        }
        return 0;
    }
  • 相关阅读:
    为 Jenkins 配置 .NET 持续集成环境
    树莓派连接GPS模块
    杂记
    大型网站架构系列:电商网站架构案例
    我的心博客。
    555555555555111
    powershell 环境变量只有当前会话起作用问题
    powershell 下独立silent 安装 浏览器问题
    python编码格式
    scss教程推荐
  • 原文地址:https://www.cnblogs.com/yigexigua/p/3928238.html
Copyright © 2011-2022 走看看