首页 > 其他分享 >AcWing 第 96 场周赛 T3-4878. 维护数组

AcWing 第 96 场周赛 T3-4878. 维护数组

时间:2023-03-25 22:14:27浏览次数:42  
标签:T3 周赛 const int LL 样例 cin 4878 add

https://www.acwing.com/problem/content/4881/

输入样例1:
5 2 2 1 8
1 1 2
1 5 3
1 2 1
2 2
1 4 2
1 3 2
2 1
2 3
输出样例1:
3
6
4
输入样例2:
5 4 10 1 6
1 1 5
1 5 5
1 3 2
1 5 2
2 1
2 2
输出样例2:
7
1
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1e18,MINN=-MAXN;
const LL N=2e6+10,M=2023;
const LL mod=998244353;
const double PI=3.1415926535;
#define endl '\n'
int n,k,a,b,q;
int tr1[N],tr2[N],d[N];
int lowbit(int x)
{
    return x&(-x);
}
void add(int c[],int x,int v)
{
    for(int i=x;i<=n;i+=lowbit(i))
        c[i]+=v;
}
int query(int c[],int x)
{
    int res=0;
    for(int i=x;i>=1;i-=lowbit(i))
    {
        res+=c[i];
    }
    return res;
}
int main()
{
    cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
    int T=1;
    //cin>>T;
    while(T--)
    {
        cin>>n>>k>>a>>b>>q;
        while(q--)
        {
            int op;
            cin>>op;
            if(op==1)
            {
                int x,y;
                cin>>x>>y;
                if(d[x]<a)
                {
                    if(d[x]+y>=a) add(tr1,x,a-d[x]);
                    else add(tr1,x,y);
                }
                if(d[x]<b)
                {
                    if(d[x]+y>=b) add(tr2,x,b-d[x]);
                    else add(tr2,x,y);
                }
                d[x]+=y;
            }
            else
            {
                LL p;
                cin>>p;
                cout<<query(tr2,p-1)+query(tr1,n)-query(tr1,p+k-1)<<endl;
            }
        }
    }
    return 0;
}

标签:T3,周赛,const,int,LL,样例,cin,4878,add
From: https://www.cnblogs.com/Vivian-0918/p/17255728.html

相关文章

  • 4878. 维护数组
    维护数组分析:分别维护两个值sum1,sum2,其他套线段树板子实现:structNode{intl,r;intminv;intsum1,sum2;}tr[N<<2];voidpushup(Node&u,N......
  • C++ 2023年计算机学院”新生杯“ACM天梯赛周赛(一) 二进制转化的感悟
    题目描述对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:0000000001000100001100100请按从小到大的顺序输出这32种01......
  • 使用SHT3x-DIS温湿度传感器的I2C案例
    前言$\qquad$本文将介绍I2C总线、SHT3xDIS温度传感器的相关知识以及OpenHarmony的HDF驱动和NAPI框架的使用方法。一、I2C总线原理$\qquad$I2C总线是飞利浦公司开发的一......
  • ArrayBuffer、Float32Array、Uint8Array 详解
    ArrayBufferArrayBuffer()是一个普通的JavaScript构造函数,可用于在内存中分配特定数量的字节空间。constbuf=newArrayBuffer(16);//在内存中分配16字节alert(buf.......
  • DesignPattern-part3
    title:"modernC++DesignPattern-Part3"date:2018-04-12T19:08:49+08:00lastmod:2018-04-12T19:08:49+08:00keywords:[设计模式,C++]tags:[设计模式]categorie......
  • T324159 卡空间的题目/电脑白吃 题解
    https://www.luogu.com.cn/problem/T324159题目大意:给定一个大小为\(n\)的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于\(\lfloor\frac{n}{2}\rfloo......
  • CentOS7 安装 Sublime Text3
    在官网下载,下载链接:http://www.sublimetext.com解压:sublime_text_build_4113_x64.tar.xz这是两层压缩,外面是xz压缩方式,里层是tar压缩[root@bogonwwwroot]#xz-dsublime_......
  • 刷爆 LeetCode 双周赛 100,单方面宣布第一题最难
    本文已收录到AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]提问。大家好,我是小彭。上周末是LeetCode第100场双周赛,你参加了吗?这场周赛整体没有Hard题,但是......
  • s2oj2046 GDKOI2023 Day1T3 异或图
    s2oj2046GDKOI2023Day1T3异或图好题,与Ex-DistinctMultiples类似,题解。首先考虑没有边的情况,那么我们需要满足条件\(1,3\)。考虑从高位开始计算,设当前考虑到第......
  • LeetCode337周赛T4 -- 同余
    1.题目描述T42.思路其实本题非常简单。我们只需要知道一个概念:“同余”。即:\(a==b(modc)\),我们称\(a\)和\(b\)相等在\(modc\)意义下。知道了这个点,......