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

    BZOJ1012: [JSOI2008]最大数maxnumber

    单调栈

    维护一个单调下降的单调栈,栈里面维护的是下标

    二分查找答案

    /**************************************************************
        Problem: 1012
        User: solvit
        Language: C++
        Result: Accepted
        Time:468 ms
        Memory:2852 kb
    ****************************************************************/
     
    #include<bits/stdc++.h>
     
    using namespace std;
    const int maxn = 200005;
    int m,d,n,t,len,top;
    char op;
    int num[maxn],a[maxn];
    int main()
    {
        scanf("%d%d",&m,&d);
        getchar();
        for(int _ = 1; _ <= m; _++)
        {
            scanf("%c%d",&op,&n);
            getchar();
            if(op=='A')
            {
                n=(n+t)%d;
                num[++len]=n;
                while(top&&num[a[top]]<=n)top--;
                a[++top]=len;
            }
            else{
                int y=lower_bound(a+1,a+top+1,len-n+1)-a;
                t=num[a[y]];
                printf("%d
    ",t=num[a[y]]);
            }
        }
     
        return 0;
    }
    View Code

    听说暴力也可以~

    /**************************************************************
        Problem: 1012
        User: solvit
        Language: C++
        Result: Accepted
        Time:456 ms
        Memory:2852 kb
    ****************************************************************/
     
    #include<bits/stdc++.h>
     
    using namespace std;
    const int maxn = 200005;
    int m,d,a[maxn],t,ans[maxn],l,p;
    char op;
    int main()
    {
        scanf("%d%d",&m,&d);getchar();
        for(int _ = 1; _ <= m; _++)
        {
            scanf("%c%d",&op,&p);getchar();
            if(op=='A')
            {
                a[++t]=(l+p)%d;
                for(int i=t;i;i--)
                    if(ans[i]<a[t])ans[i]=a[t];
                    else break;
            }
            else{
                printf("%d
    ",l=ans[t-p+1]);
            }
        }
        return 0;
    }
    
    View Code
  • 相关阅读:
    Part 3:视图和模板--Django从入门到精通系列教程
    Part 2:模型与后台管理admin站点--Django从入门到精通系列教程
    Part 1:请求与响应--Django从入门到精通系列教程
    java的static关键字
    接口
    final关键字
    抽象类
    动态绑定多态
    对象转型2
    对象转型1
  • 原文地址:https://www.cnblogs.com/solvit/p/9506520.html
Copyright © 2011-2022 走看看