IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 动态求连续区间和(树状数组c++) -> 正文阅读

[数据结构与算法]动态求连续区间和(树状数组c++)

原题链接:https://www.acwing.com/problem/content/1266/

目录

树状数组解法(参照y总思路):

?AC代码:


给定?n?个数组成的一个数列,规定有两种操作,一是修改某个元素,二是求子数列 [a,b]?的连续和。

输入格式

第一行包含两个整数?n?和?m,分别表示数的个数和操作次数。

第二行包含?n?个整数,表示完整数列。

接下来?m?行,每行包含三个整数?k,a,b (k=0,表示求子数列[a,b]的和;k=1,表示第?a?个数加?b)。

数列从?1?开始计数。

输出格式

输出若干行数字,表示 k=0?时,对应的子数列 [a,b]?的连续和。

数据范围

1≤n≤100000,
1≤m≤100000,
1≤a≤b≤n,
数据保证在任何时候,数列中所有元素之和均在 int 范围内。

输入样例:

10 5
1 2 3 4 5 6 7 8 9 10
1 1 5
0 1 3
0 4 8
1 7 5
0 4 8

输出样例:

11
30
35

?一开始没想到树状数组,直接前缀和过了60%的数据超时了.

树状数组解法(参照y总思路):

?

?AC代码:

#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int a[N],tree[N];
int n,m;
int k,x,y;

int lowbit(int x)//lowbit函数 返回尾数1与后面的0
{
    return x&(-x);
}
void add(int x,int v)
{
    for(int i=x;i<=n;i+=lowbit(i))
        tree[i]+=v;
}
int query(int x)//求前缀和
{
    int res=0;
    for(int i=x;i>0;i-=lowbit(i))
    {
        res+=tree[i];
    }
    return res;
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)cin>>a[i];
    for(int i=1;i<=n;i++)add(i,a[i]);//每个i位置都加上a[i]
    while(m--)
    {
        cin>>k>>x>>y;
        if(k==0)cout<<query(y)-query(x-1)<<endl;//x 到 y的前缀和
        else add(x,y);//加上一个数
    }
    return 0;
}

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:48:16  更:2022-03-08 22:52:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 13:33:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码