首页 > 其他分享 >P1531 I Hate It

P1531 I Hate It

时间:2024-02-20 21:36:42浏览次数:20  
标签:node P1531 int tree mid build Hate op

原题链接

题解

多次单点修改加上多次区间查询
线段树

code

#include<bits/stdc++.h>
using namespace std;

int tree[800005]={0};
int a[200005]={0};
void build(int node,int l,int r)
{
    if(l==r)
    {
        tree[node]=a[l];
        return;
    }

    int mid=(l+r)/2;
    build(node*2,l,mid);
    build(node*2+1,mid+1,r);
    tree[node]=max(tree[node*2],tree[node*2+1]);
}

void update(int node,int l,int r,int x,int y,int val)
{
    if(l>y||r<x)return;
    if(l==x&&r==y)
    {
        tree[node]=max(tree[node],val);
        return;
    }

    int mid=(l+r)/2;
    update(node*2,l,mid,x,y,val);
    update(node*2+1,mid+1,r,x,y,val);
    tree[node]=max(tree[node*2],tree[node*2+1]);
}

int query(int node,int l,int r,int x,int y)
{
    if(l>y||r<x)return 0;
    if(l>=x&&r<=y) return tree[node];

    int mid=(l+r)/2;
    return max(query(node*2,l,mid,x,y),query(node*2+1,mid+1,r,x,y));
}
int main()
{
    int n,m;
    cin>>n>>m;

    for(int i=1;i<=n;i++) cin>>a[i];

    build(1,1,n);

    while(m--)
    {
        char op;
        int x,y;
        cin>>op>>x>>y;

        if(op=='U') update(1,1,n,x,x,y);
        else cout<<query(1,1,n,x,y)<<endl;
    }
    return 0;
}

标签:node,P1531,int,tree,mid,build,Hate,op
From: https://www.cnblogs.com/pure4knowledge/p/18024087

相关文章

  • P1531 I Hate It
    单点修改+区间查询IHateIt题目背景很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。这让很多学生很反感。题目描述不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。......
  • CF1523D Love-Hate 题解
    抽象化题意:一共有\(m\)个元素,给定\(n\)个集合,每个集合的元素不超过\(15\)个,求出一个元素个数最多的集合\(S\)是至少\(\lceil\dfrac{n}{2}\rceil\)个集合的子集。其中$p$$(1\len\le2\cdot10^5,1\lep\lem\le60)$我们先假设\(limit=\lceil\dfrac......
  • 详述:whatever的用法
    whatever的用法具体表现如下:  1,whatever可以引导名词性从句,作为主语、宾语或表语,意思是“任何……都”、“无论什么……都”。例如:  Whateveryousayistrue.无论你说什么都是真的。Iwilldowhateveryouwant.我会做任何你想要的事。Heiswhatever......
  • ChatEmail-和邮件对话
    前言ChatEmail基于......
  • P1531 I Hate It —— 个人思路讲解
    原题链接戳这里初版代码一开始码的是普通暴力因为维护区间内的最大值实在没想到什么好的方法点击查看代码#include<bits/stdc++.h>usingnamespacestd;#defineN200005#defineilinline#defineInf0x3f3f3f3fintn,m;inta[N];ilintread(){ intx=0; boo......
  • AtCoder Beginner Contest 177 F I hate Shortest Path Problem
    洛谷传送门AtCoder传送门设\(f_{i,j}\)为从第\(1\)行到\((i+1,j)\)的最短路。因为我们并不关心最后到达的是哪一个格子,于是强制\(f_{i,j}\)为必须从\((i,j)\)往下走一格到\((i+1,j)\)的最短路。有转移:\[f_{i,r+1}\getsf_{i-1,j}+r+2-j,j\in[l......
  • chater 8
    商品零售购物篮分析#%%查看数据特征importnumpyasnpimportpandasaspdinputfile=r"D:\py_project\a_三下\GoodsOrder.csv"#输入的数据文件data=pd.......
  • Hate That You Know Me (15黑龙江省赛) (数学公式题)(数论分块) (前缀和,小的数学结论
      思路;遇到数学公式,一层一层剥开发现那个式子就是求n内的每一个数的倍数在n以内的数量,明显数论分块来处理这个问题然后就是因子的^2,^3,这个子问题......
  • P4852 yyf hates choukapai
    yyf要抽卡第i张卡的欧气值为a[i],而在连抽时,欧气值等于第一张卡的欧气值。每次抽卡的欧气之和”指每次单抽的欧气之和加上每次连抽的欧气之和. yyf想C连抽(连续抽......
  • ChatExcel--自动处理表格
    目录一、简介1.项目背景2.有点超越ChatGPT?3.功能特点4.ChatExcel入口5.操作系数二、页面分析三、浅入测试1.模拟表格内容2.上传文件3.测试降序4.条件筛选四、输入案例五、......