首页 > 其他分享 >贪婪大陆

贪婪大陆

时间:2023-10-11 15:13:29浏览次数:42  
标签:rs int ll cin 大陆 build 贪婪 define

P2184 贪婪大陆

我们考虑记录每个位置作为左右端点的次数的信息。

  1. 直接在两个位置处+1.
  2. 查询区间相当于=左端点在当前区间左侧的区间个数-右端点在
#include<cstdio>
#include<iostream>
using namespace std;
#define Ed for(int i=h[x];~i;i=ne[i])
#define Ls(i,l,r) for(int i=l;i<r;++i)
#define Rs(i,l,r) for(int i=l;i>r;--i)
#define Le(i,l,r) for(int i=l;i<=r;++i)
#define Re(i,l,r) for(int i=l;i>=r;--i)
#define L(i,l) for(int i=0;i<l;++i)
#define E(i,l) for(int i=1;i<=l;++i)
#define W(t) while(t--)
#define Wh while
#define ls p<<1
#define rs p<<1|1

const int N=100010,M=4*N;
int n,m,l[M],r[M],a[N];
typedef long long ll;
ll v[M],f[M];
void up(int p){
    v[p]=v[ls]+v[rs];
}
void down(int p){
    ll &vv=f[p];
    if(vv){
        v[ls]+=(r[ls]-l[ls]+1)*vv;
        f[ls]+=vv;
        v[rs]+=(r[rs]-l[rs]+1)*vv;
        f[rs]+=vv;
        vv=0;
    }
}
void build(int p,int ll,int rr){
    l[p]=ll,r[p]=rr;
    if(ll==rr){
        v[p]=a[ll]-a[ll-1];
        return;
    }
    int mid=ll+rr>>1;
    build(ls,ll,mid),build(rs,mid+1,rr);
    up(p);
}
void update(int p,int ll,int rr,int va){
    if(ll<=l[p]&&r[p]<=rr){
        v[p]+=(r[p]-l[p]+1ll)*va;
        f[p]+=va;
        return;
    }
    int mid=l[p]+r[p]>>1;
    down(p);
    if(ll<=mid)update(ls,ll,rr,va);
    if(rr>mid)update(rs,ll,rr,va);
    up(p);
}
ll query(int p,int L,int R){
    if(L<=l[p]&&r[p]<=R)return v[p];
    int mid=l[p]+r[p]>>1;
    down(p);
    ll res=0;
    if(L<=mid)res=query(ls,L,R);
    if(R>mid)res+=query(rs,L,R);
    return res;
}
int main(){
    #ifndef ONLINE_JUDGE
    freopen("1.in","r",stdin);
    #endif
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cin>>n>>m;
    E(i, n)cin>>a[i];
    build(1,1,n);
    E(i, m){
        int op,l,r,k,d;
        cin>>op;
        if(op==1){
            cin>>l>>r>>k>>d;
            update(1,l,l,k);
            if(l<n)update(1,l+1,r,d);
            if(r<n)update(1,r+1,r+1,(l-r)*d-k);
        }
        else{
            cin>>d;
            cout<<query(1,1,d)<<'\n';
        }
    }
    return 0;
}

标签:rs,int,ll,cin,大陆,build,贪婪,define
From: https://www.cnblogs.com/wscqwq/p/17757206.html

相关文章

  • 首位中国大陆学者!周志华当选新任国际人工智能联合会(IJCAI)理事会主席
    TOP前言“TOP大学来了”小编按,8月25日,在IJCAI2023闭幕式上,IJCAI执行委员会宣布欧洲科学院外籍院士、南京大学周志华教授当选为新一届的国际人工智能联合会理事会(IJCAITrustee)主席。“TOP大学来了”小编按,8月25日,在澳门举行的IJCAI2023闭幕式上,IJCAI执行委员会宣布欧洲科学院外......
  • 华为认证 | 华为认证中国大陆笔试考试系统升级公告
    由于笔试考试系统升级,将会影响中国大陆区域2023年9月25日及之后的笔试考试预约,具体影响如下:1.2023年9月25日-27日预约/改期/取消笔试考试的考生,将会同时收到邮件和短信通知,9月28日07:00及之后预约/改期/取消笔试考试的考生将只能收到短信通知,预计12月31日前恢复发送邮件通知。2.9......
  • AI绘画:SD绘画变现及实操过程-斗罗大陆-唐雅-高清壁纸
    资源内容介绍:大家好,我是小梦,最近一直研究AI绘画领域,总结了一些变现的方式,需要的可以来这里阅读下:AI绘画:无私分享我的AI绘画变现之路,普通人可实操可模仿都是自己经过实操,总结出来的,内容非常的干货,没有任何套路。不久前,耗费了半个月的时间给大家整理分享了StableDiffusion的全......
  • AI绘画:StableDiffusion实操教程-斗罗大陆-朱竹清(附高清图下载)
    大家好,我是小梦,最近一直研究AI绘画。不久前,我与大家分享了StableDiffusion的全面教程:“AI绘画:StableDiffusion终极宝典:从入门到精通”然而,仍有些读者提出,虽然他们已经成功地安装了此工具,但生成的作品与我展示的相差较大。那么,如何缩小这之间的质感差距呢?关键在于选择合适的......
  • hw面试题拾遗:统计大陆数量
    这个本来应该在几个月前就处理,一直拖到了现在。题目描述很简单,一个二维平面被分割为小块,每块可能是陆地或者海洋。1表示陆地,0表示海洋。如果一个陆地区块的上\下\左\右是一块陆地,那么它们就会被看成是一个大陆。给定数组表示各区块,统计出有几块大陆。 关于这道题,当时给出题目......
  • AI绘画:StableDiffusion实操教程-斗罗大陆2-江楠楠-常服(附高清图下载)
    前段时间我分享了StableDiffusion的非常完整的教程:“AI绘画:StableDiffusion终极宝典:从入门到精通”尽管如此,还有读者反馈说,尽管已经成功安装,但生成的图片与我展示的结果相去甚远。真实感和质感之间的差距到底在哪里?关键之处在于使用正确的大模型model和专用的lora包。今天,我......
  • 230901 简单模式,避免贪婪
    短线操作中,存在各种各样的模式与上涨方式.比如德赛西威的机构缓慢上涨, 星期六,中贝,金科股份,直接快速上涨.美丽生态,金盛控股,人民网的震荡上涨方式.多种上涨方式,则存在多种的买入位置与,买点与卖点.你要想把这些所有的都覆盖,显然是不可能的.比如,掌握打板,掌握半路,......
  • 正则表达式:贪婪与非贪婪模式
    正则中的三种模式,贪婪匹配、非贪婪匹配和独占模式。在这6种元字符中,我们可以用{m,n}来表示(*)(+)(?)这3种元字符:贪婪模式,简单说就是尽可能进行最长匹配。非贪婪模式呢,则会尽可能进行最短匹配。正是这两种模式产生了不同的匹配结果。贪婪匹配(Greedy)在正则中,表示次数的量词默认是贪......
  • 斗罗大陆武魂觉醒折扣平台,武魂觉醒折扣服0.1折
    在中华网游界,一款名为"斗罗大陆武魂觉醒"的手游现在成为了一颗璀璨的明星。炫酷的特效,丰富的剧情,吸引了大批的玩家。对于喜欢玩此款游戏的人来说,找到一个折扣平台和折扣服就显得尤为重要。本文将给您介绍斗罗大陆武魂觉醒折扣平台,可以关注“娱乐天梯”获取,武魂觉醒折扣服0.1折。 ......
  • 斗罗大陆武魂觉醒最强阵容,斗罗大陆武魂觉醒t0阵容
    斗罗大陆武魂觉醒能够带领大家回到熟悉的斗罗大陆世界,整个场景非常熟悉,一点也不会感到陌生。现在,通过游戏模式,我们可以一个接一个地呈现原始的情节故事,充满回忆,并在这里选择熟悉的角色和匹配相关阵容,斗罗大陆武魂觉醒最强阵容,斗罗大陆武魂觉醒t0阵容是哪些?下面我们就来看看小编给大......