洛谷模板,樹狀數組二 差分

題目鏈接:https://www.luogu.org/problemnew/show/P3368

先介紹下差分:

設數組a[]={1,6,8,5,10},那么差分數組b[]={1,5,2,-3,5}

也就是說b[i]=a[i]-a[i-1];(a[0]=0;),那么a[i]=b[1]+....+b[i];(這個很好證的)。

假如區間[2,4]都加上2的話

a數組變為a[]={1,8,10,7,10},b數組變為b={1,7,2,-3,3};

發現了沒有,b數組只有b[2]和b[5]變了,因為區間[2,4]是同時加上2的,所以在區間內b[i]-b[i-1]是不變的.

所以對區間[x,y]進行修改,只用修改b[x]與b[y+1]:

b[x]=b[x]+k;b[y+1]=b[y+1]-k;

#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <cmath>#include <queue>using namespace std;int n,m;int input[500010];int tree[500100];int lowbit(int x){return x & -x;}void add(int x,int k){while(x<=n){tree[x]+=k;x+=lowbit(x);}}int search(int x){int ans=0;while(x!=0){ans+=tree[x];x-=lowbit(x);}return ans;}int main(){cin>>n>>m;for(int i=1;i<=n;i++)cin>>input[i];for(int i=1;i<=m;i++){int a;scanf("%d",&a);if(a==1){int x,y,z;scanf("%d%d%d",&x,&y,&z);add(x,z);add(y+1,-z);}if(a==2){int x;scanf("%d",&x);printf("%d\n",input[x]+search(x));}}}

?

轉載于:https://www.cnblogs.com/qingjiuling/p/10535565.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/248358.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/248358.shtml
英文地址,請注明出處:http://en.pswp.cn/news/248358.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

KMS安裝后激活機器

slmgr /skms 192.168.26.82 slmgr /ato轉載于:https://www.cnblogs.com/EllieSoft/p/3410320.html

Java內存模型深度解析:總結

處理器內存模型 順序一致性內存模型是一個理論參考模型&#xff0c;JMM和處理器內存模型在設計時通常會把順序一致性內存模型作為參照。JMM和處理器內存模型在設計時會對順序一致性模型做一些放松&#xff0c;因為如果完全按照順序一致性模型來實現處理器和JMM&#xff0c;那么…

sourcetree,創建工作流報錯:Fatal: Not a gitflow-enabled repo yet. Please run 'git flow init' first.-》解決辦法...

1、打開項目下.git/config文件&#xff0c;或者如下圖操作&#xff1a; 2、打開config文件以后&#xff0c;刪除所有 [gitflow *條目并保存文件 3、關閉并重新打開sourcetree 4、倉庫-》Git 工作流-》初始化倉庫即可轉載于:https://www.cnblogs.com/yxfeng/p/10536955.html

關于a標簽的href屬性的注意事項

今天在做一個lightbox效果的時候出現了一個問題。 當往下滾動再點擊按鈕出現lightbox的時候&#xff0c;lightbox的遮罩層不能鋪滿&#xff08;即滾動高度處不能鋪上&#xff09;&#xff0c;如下圖所示。原因是提交按鈕使用的是a標簽&#xff0c;當給a標簽寫上href屬性的時候&…

爬蟲開發4.三種數據解析方式

數據解析三種方式引言&#xff1a;回顧requests實現數據爬取的流程 指定url基于requests模塊發起請求獲取響應對象中的數據進行持久化存儲其實&#xff0c;在上述流程中還需要較為重要的一步&#xff0c;就是在持久化存儲之前需要進行指定數據解析。因為大多數情況下的需求&…

在mac上安裝gitlab

參考鏈接&#xff1a; https://www.cnblogs.com/floodwater/p/10138265.html 注意事項&#xff1a; 在安裝gitlab-ce時&#xff0c;配置hostname域名后&#xff0c;通過域名訪問gitlab時&#xff0c;需要配置本機hosts文件&#xff0c;不然不能訪問 本地hosts文件中配置后 就可…

org.apache.maven.archiver.MavenArchiver.getManifest錯誤

org.apache.maven.archiver.MavenArchiver.getManifest錯誤 網上普遍要add&#xff0c;&#xff0c;&#xff0c;&#xff0c;&#xff0c; 正解&#xff1a; 接到一個新需求&#xff0c;開始搭建項目時遇到了如標題錯誤。查詢網絡普遍得到是更新maven插件版本。 之前已安裝過此…

d3.js 入門指南

說到數據可視化&#xff0c;我們會行到很多優秀的框架&#xff0c;像echarts、highcharts&#xff0c;這些框架很優雅&#xff0c;健壯&#xff0c;能滿足我們對可視化的大部分需求&#xff0c;但是缺點也很明顯&#xff0c;就是這些框架幾乎是不可定制化的&#xff0c;當遇到特…

【LeetCode】200. 島嶼的個數

題目 給定一個由 1&#xff08;陸地&#xff09;和 0&#xff08;水&#xff09;組成的的二維網格&#xff0c;計算島嶼的數量。一個島被水包圍&#xff0c;并且它是通過水平方向或垂直方向上相鄰的陸地連接而成的。你可以假設網格的四個邊均被水包圍。 示例 1:輸入: 11110 110…

AI 模擬退火算法

模擬退火算法轉載于:https://www.cnblogs.com/yangwenhuan/p/10548171.html

keep用法

keep 是英語中用法靈活的動詞之一&#xff0c;下面筆者就其用法歸納如下&#xff1a; 一、用作系動詞&#xff0c;意為“保持&#xff08;某種狀態&#xff09;”&#xff0c;其后常接形容詞作表語。如&#xff1a; Please keep quiet / silent! 請保持安靜&#xff01; Aft…

Kubernetes系列之Helm介紹篇

本次系列使用的所需部署包版本都使用的目前最新的或最新穩定版&#xff0c;安裝包地址請到公眾號內回復【K8s實戰】獲取 介紹 Helm 是 Deis 開發的一個用于 Kubernetes 應用的包管理工具&#xff0c;主要用來管理 Charts。有點類似于 Ubuntu 中的 APT 或 CentOS 中的 YUM。Helm…

HTNL筆記整合

簡述概括了HTML 的部分內容&#xff0c;不是很完善&#xff0c;希望能給予你們相對的幫助。 一下文件的整合百度云鏈接&#xff1a;HTML整合筆記 第一章 HTML入門 課時1&#xff1a;HTML初識 1、英文名&#xff08;Hyper Text Markup Language&#xff09;超文本標簽語言 對…

EXCEL 圖表 只在拐點的時候顯示數字

EXCEL圖表只在折線的拐點顯示數值&#xff0c;中間不需要顯示。同時往下拐的&#xff0c;顯示在上方&#xff0c;往上的顯示在下方&#xff0c;這樣數值不會擋住線。 首先&#xff0c;做一些模擬數據 因為起點和終點數值必須顯示&#xff0c;所以單元格&#xff0c;C2 D2 C19 D…

淺談Vue之雙向綁定

VUE實現雙向數據綁定的原理就是利用了 Object.defineProperty() 這個方法重新定義了對象獲取屬性值(get)和設置屬性值(set)的操作來實現的。那么Object.defineProperty究竟是該如何使用的呢&#xff1f;先看個例子 <!DOCTYPE html> <html lang"en"><h…

【AtCoder】AGC017

A - Biscuits dp[i][0/1]表示當前和是偶數還是奇數&#xff0c;直接轉移即可 #include <bits/stdc.h> #define fi first #define se second #define pii pair<int,int> #define mp make_pair #define pb push_back #define space putchar( ) #define enter putchar…

SQL語法(1、安裝操作)

1、數據庫的系統概述及安裝與基本使用 bilibili可查找安裝視頻百度了解一下 – 使用超級管理員登錄 CONN sys/change_on_install AS SYSDBA ; – 創建c##scott用戶 CREATE USER c##scott IDENTIFIED BY tiger ; – 為用戶授權 GRANT CONNECT,RESOURCE,UNLIMITED TABLESPACE…

java 中文字符和unicode編碼值相互轉化

java 中文字符和unicode編碼值相互轉化 https://blog.csdn.net/u011366045/article/details/79235217 版權聲明&#xff1a;本文為博主原創文章&#xff0c;未經博主允許不得轉載。 https://blog.csdn.net/u011366045/article/details/792352171、引用工具 import com.alibaba.…

Object 及toString() 方法的重寫

Object: 是所有的類的父類 &#xff0c;Object中所有的方法 &#xff0c; 子類都能使用 &#xff0c; 接口不是Object子類。 Person: /*將父類的equals方法 重寫* 不改變父類的源代碼 equals 比較內存地址* 比較兩個成員變量 變量值相等 返回true 不等 返回false* 重…

SQL語法練習

SQL語法練習https://blog.csdn.net/qq_30764991/article/details/81952197員工表建表語句: CREATE TABLE EMP ( ENAME VARCHAR2(30), EMPNO NUMBER(5), DEPTNO NUMBER(5), JOB VARCHAR2(20), HIREDATE DATE, COMM NUMBER(6,2), SAL NUMBER(6,2) ); 部門表建表語句: CREATE TA…