神龙大侠


私信TA

用户名:ky520

访问量:194

签 名:

等  级
排  名 12350
经  验 920
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校 九江职业技术学院
专  业

  自我简介:

TA的其他文章

线段树做法
浏览:103


import java.io.*;

public class Main{

    static Node tr[];

    public static void main(String[]args) throws Exception{

        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

        BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));

        String s[]=br.readLine().split(" ");

        int m=Integer.parseInt(s[0]),p=Integer.parseInt(s[1]);

        tr=new Node[m*4];

        int last=0,x=0,n=1;

        build_tree(1,1,m);

        while(m--!=0){

            s=br.readLine().split(" ");

            x = Integer.valueOf(s[1]);

            if("Q".equals(s[0])){

                last = query(1, n - x + 1, n);

                bw.write(last + "\n");

            }else{

                modify(1, n + 1, (last + x) % p);  //注意,这里根节点是1, 修改的数是从n + 1开始。

                n++;

            }

             bw.flush();

        }

    }

    static void build_tree(int u,int l,int r){

        tr[u]=new Node(l,r);

        if(l==r) return;

        int mid=l+r>>1;

        build_tree(u<<1,l,mid);

        build_tree(u<<1|1,mid+1,r);

    }

    static void modify(int u,int x,int c){

        if(tr[u].l==x&&tr[u].r==x){

            tr[u].v=c;

        }else{

            int mid=tr[u].l+tr[u].r>>1;

            if(x<=mid) modify(u<<1,x,c);

            else modify(u<<1|1,x,c);

            pushUp(u);

        }

    }

    static void pushUp(int u){

        tr[u].v=Math.max(tr[u<<1].v,tr[u<<1|1].v);

    }

    static int query(int u,int l,int r){

        if(tr[u].l>=l&&tr[u].r<=r) return tr[u].v;

        int mid=tr[u].l+tr[u].r>>1;

        int v=0;

        if(l<=mid) v=query(u<<1,l,r);

        if(r>mid) v=Math.max(v,query(u<<1|1,l,r));

        return v;

    }

}

class Node{

    int l,r,v;

    Node(int l,int r){

        this.l=l;

        this.r=r;

    }

}


 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区