zoukankan      html  css  js  c++  java
  • bzoj1012: [JSOI2008]最大数maxnumber

    题目链接

    bzoj1012: [JSOI2008]最大数maxnumber

    题解

    维护一颗长m序列的线段树
    瞎打就OK了
    听说可以单调栈?
    luogu数据真是有毒

    代码

    #include<cstdio>
    #include<algorithm> 
    const int maxn = 200007; 
    inline int read() { 
        int x = 0,f = 1;
        char c = getchar(); 
        while(c < '0' || c > '9') {if(c == '-')f = -1;c = getchar();} 
        while(c <= '9' && c >= '0')x = x * 10 + c - '0',c = getchar(); 
        return x * f; 
    } 
    int t[maxn << 2]; 
    int D,M,len; 
    #define ls x << 1
    #define rs x << 1 | 1 
    inline void update(int x) {
        t[x] = std::max(t[ls],t[rs]); 
    }
    void modify(int x,int l,int r,int to,int w) { 
        if(l == r) {
            t[x] = w % M; return ;
        } 
        int mid = l + r >> 1;
        if(to <= mid) modify(ls,l,mid,to,w); 
        else modify(rs,mid + 1,r,to,w) ; 
        return update(x); 
    } 
    int query(int x,int l,int r,int tl,int tr) {
        if(l >= tl && r <= tr) 
            return t[x]; 
        int mid = l + r >> 1;
        int ret = 0;
        if(tl <= mid) ret = std::max(ret,query(ls,l,mid,tl,tr)); 
        if(tr > mid ) ret = std::max(ret,query(rs,mid + 1,r,tl,tr)); 
        return ret; 
    }
    int main() { 
        D = read(),M = read(); 
        char c[20]; 
        len = 0;
        for(int tmp = 0,k,i = 1;i <= D;++ i) { 
            scanf("%s",c + 1) ;
            if(c[1] == 'A') {
                len ++;k = read(); 
                modify(1,1,D,len,k + tmp);  
            } 
            else {
                k = read(); 
                tmp = query(1,1,D,len - k + 1,len) % M; 
                printf("%d
    ",tmp % M); 
            } 
        }
        return 0; 
    } 
    
  • 相关阅读:
    静态(static)、虚拟(virtual)、动态(dynamic)或消息处理(message)
    SQLLITE
    SQLite数据表和视图
    SQLite
    DELPHI 泛型
    indy10 学习2
    indy10 线程池
    indy
    Indy10 控件的使用(2)TidTCpServer组件学习
    Socket心跳包机制
  • 原文地址:https://www.cnblogs.com/sssy/p/9008950.html
Copyright © 2011-2022 走看看