当前位置: 首页 > news >正文

242. 一个简单的整数问题

Powered by:NEFU AB-IN

Link

文章目录

  • 242. 一个简单的整数问题
    • 题意
    • 思路
    • 代码

242. 一个简单的整数问题

  • 题意

    给定长度为 N的数列 A,然后输入 M行操作指令。
    第一类指令形如 C l r d,表示把数列中第 l∼r个数都加 d
    第二类指令形如 Q x,表示询问数列中第 x个数的值。
    对于每个询问,输出一个整数表示答案

  • 思路

    树状数组 + 差分,实现区间修改 + 单点查询
    其实就是对差分数组进行原先树状数组的操作,维护差分数组

    • 区间修改就是 add(l, d) add(r + 1, -d)
    • 单点查询就是,对差分数组求前缀和,也就是单点查询了

    如要实现区间查询,详见 link

  • 代码

    '''
    Author: NEFU AB-IN
    Date: 2023-03-26 11:48:05
    FilePath: \Acwing\242\242.py
    LastEditTime: 2023-03-26 11:55:10
    '''
    # import
    import sys, math
    from collections import Counter, deque
    from heapq import heappop, heappush
    from bisect import bisect_left, bisect_right# Final
    N = int(1e5 + 10)
    INF = int(2e9)# Define
    sys.setrecursionlimit(INF)
    read = lambda: map(int, input().split())# —————————————————————Division line ————————————————————————————————————————
    tr = [0] * Ndef lowbit(x):return x & -xdef add(x, v):while x < N:tr[x] += vx += lowbit(x)def query(x):res = 0while x:res += tr[x]x -= lowbit(x)return resn, m = read()
    a = [0] + list(read())
    for i in range(1, n + 1):add(i, a[i] - a[i - 1])for _ in range(m):op = list(input().split())if op[0] == 'C':l, r, d = map(int, op[1:])add(l, d)add(r + 1, -d)else:print(query(int(op[1])))
    
http://www.lryc.cn/news/42942.html

相关文章:

  • docker安装Redis高可用(一主二从三哨兵)
  • 安全防御之入侵检测篇
  • 学习系统编程No.10【文件描述符】
  • 网络基础认识
  • 【蓝桥杯_练习】
  • 【C语言蓝桥杯每日一题】——跑步锻炼
  • Qt之实现类似软件安装时的新功能介绍界面
  • echarts地图不同地区设置不同的颜色
  • 网易云音乐API部署Vercel获取接口过程
  • Java基础:字符串(String)及常用操作
  • FL Studio 21中文版支持主题随心换,FL Studio 21Mac版新增对苹果M2/1家族芯片原生支持。
  • 【蓝桥杯集训·周赛】AcWing 第96场周赛
  • 【数据结构】顺序表的深度刨剖析
  • Unity 之 使用原生UGUI实现随手移动摇杆功能经典实例
  • Linux内核源代码概述
  • Nginx 教程-动静分离
  • 自己设计的网站,如何实现分页功能?(详细代码+注释)
  • STM32F407控制微型推拉式电磁铁(通过继电器)
  • VS Code工作区用法
  • Mybatis-Plus SQLFeatureNotSupportedException: getObject with type问题解决
  • Unity | 发布Android的那些事儿
  • git为什么要先commit,然后pull,最后再push?而不是commit完直接push?
  • 若依框架----源码分析(@RateLimiter)
  • 页面的重排和重绘?
  • 人脸检测-python和c++实现
  • PowerJob源码环境搭建
  • 天梯赛刷题小记 —— L2
  • Prometheus监控实战系列十九:监控Kubernetes集群(上)
  • 番茄学习法——亲测超级好用
  • vue 项目中使用高德地图