差分陣列淺談
什麼是差分陣列?
定義
對於已知有n個元素的離線數列d,我們可以建立記錄它每項與前一項差值的差分陣列f:顯然,f[1]=d[1]-0=d[1];對於整數i∈[2,n],我們讓f[i]=d[i]-d[i-1]
簡單性質
原陣列的第i項為差分陣列的前i項和
基本應用
快速更改區間各各數的值,如果對原陣列的區間[l,r]的每一項都加2,那麼僅需要將差分陣列的d[l]+2和d[r+1]+2即可
一種實現的寫法
int now,last=0;
for(int i=0;i<n;i++)
{
cin>>now;
a[0]=now-last;
last=now;
}
相關推薦
差分陣列淺談
什麼是差分陣列? 定義 對於已知有n個元素的離線數列d,我們可以建立記錄它每項與前一項差值的差分陣列f:顯然,f[1]=d[1]-0=d[1];對於整數i∈[2,n],我們讓f[i]=d[i]-d[i-1] 簡單性質 原陣列的第i項為差分陣列的前i項和 基本應用 快速更改區間各各數的值,如果對原陣
BZOJ 4326 NOIP 2015 DAY2 T3 淺談二分及樹上差分陣列DFS動態統計
世界真的很大 今天正值全校運動會然而卻被困機房 想著寫完這道題就下樓看運動會於是乎一A,老天luogu的“大凶”能奈我何? 於是還剩一點時間,所以寫一下部落格 看題先: description: 公元 2044 年,人類進入了宇宙紀元。L
HDU——1556 【差分陣列&&樹狀陣列】Color the ball
N個氣球排成一排,從左到右依次編號為1,2,3....N.每次給定2個整數a b(a <= b),lele便為騎上他的“小飛鴿"牌電動車從氣球a開始到氣球b依次給每個氣球塗一次顏色。但是N次以後lele已經忘記了第I個氣球已經塗過幾次顏色了,你能幫他算出每個氣球被塗過幾次顏色
DUTOJ-1225: Geralt的佛系昆特牌-差分陣列
用到了差分陣列來維護一段區間上的性質 關於差分陣列 https://www.cnblogs.com/COLIN-LIGHTNING/p/8436624.html 程式碼: #include<stdio.h> int a[1000002]; int b[1000002
HihoCoder - 1249 Xiongnu's Land —— 差分陣列
題意: 兩個人分一塊橫座標0~R,縱座標無限大的土地,裡面有許多矩形形狀的綠洲,保證綠洲沒有重疊 需要選定一個整數橫座標x,滿足: 1.座標左側的綠洲面積大於等於右側的綠洲面積 2.座標左側的面積要儘可能大 問x是多少 思路: 要滿足第二個條件,只需要從R處向左找第一
Gym - 101775J Straight Master —— 差分陣列
題意: 問能不能通過操作多次將長度為3~5的區間都加1得到給定的數列 思路: 利用差分陣列的思想,將區間X,Y都加1可以變成在X處加1,在Y+1處減1,這樣我們可以通過拿這一項減前一項得到給定數列的差分陣列,因為每個區間長度至少要是3,所以在每個大於0的位置,找它加3位置後面是否有足
Gym 101775J Straight Master(差分陣列)題解
題意:給你n個高度,再給你1~n每種高度的數量,已知高度連續的3~5個能消去,問你所給的情況能否全部消去;例:n = 4,給出序列1 2 2 1表示高度1的1個,高度2的2個,高度3的2個,高度4的1個。那麼我打出1 1 1(高度1 2 3),1 1 1(高度2 3 4)剛好打完。 思路:對於差分陣列我們知
P1083 借教室-二分答案-差分陣列第二彈
https://www.luogu.org/problemnew/show/P1083 小結:差分陣列,一般並沒有裸的考查,但是差分陣列的思想啊,輔助啊,還是比較常用的 思路:二分答案,列舉最多多少訂單能夠合法。每次檢驗答案按照差分思想檢驗判斷當前訂單數是否超過原來的量 #
#二分,差分陣列#SSL 2366 洛谷 1083 借教室
題目 問第幾個區間加一會使區間內值超過限定值 分析 那麼這道題需要用二分答案,然後同時用差分陣列判斷即可,時間複雜度 O (
樹狀陣列---區間更新(差分陣列實現)
/* * @Author: Achan * @Date: 2018-10-28 12:55:01 * @Last Modified by: Achan * @Last Modified time: 2018-10-28 19:59:13 */ #incl
差分陣列 and 樹上差分
差分陣列 定義 百度百科中的差分定義 //其實這完全和要講的沒關係 qwq 進去看了之後是不是覺得看不懂? 那我簡單概括一下qwq 差分陣列de定義:記錄當前位置的數與上一位置的數的差值. 栗子 容易發現的是,\(\sum_{j=1}^{i} b_j\)即代表\(a_i\) 的值. \((\sum\) 即代
HDU5785 Interesting(manacher+差分陣列)
題意:一個串s,如果存在1<=i<=j<k<=|s|,且s[i,..j]和s[j+1,..k]都是迴文串,那麼對結果的貢獻就是i*k。求所有貢獻之和。 思路:對於每個位置i,設以i為末尾的迴文串的起點分別為s1,s2,...,以i+1為起點的迴文
簡單的詢問--差分陣列
Problem A: 簡單的詢問 Time Limit: 1 Sec Memory Limit: 64 MB Description 給你N個區間[Li,Ri],有Q個詢問。 每個詢問問,num這個數是否在給出的某個區間內。 Input 輸入第一行有一個正整數T(T&
演算法習題分類 差分陣列 樹鏈剖分 圖的連通性問題 2-SAT LCA AC自動機 動態規劃(基礎)
My Travel Of Acm! 早早的結束了考試,最近任務不是那麼重,就花點時間整理了一下大二上學期學習過的一些演算法 --2019-01-06 分類 知識清單 資
【poj3263】Tallest Cow(差分陣列)
problem 給出n頭牛的身高,和m對關係(a[i]與b[i]可以相互看見。即他們中間的牛都比他們矮)。已知最高的牛為第p頭,身高為h。 求每頭牛的身高最大可能是多少。 solution 計算牛的相對大小關係。 第p頭最高h,比他矮的最高一定是h
資料結構8-差分陣列
做到了這個題,傳送門 一眼看完就知道是線段樹,,,, 但是,,我還是看了題解、、、 線段樹會TLE一個點。。。 怎麼辦呢 注意到,,這道題因為修改和查詢是分開的,所以線段樹有點浪費。 這道題實際上是一個
hdu-1556-樹狀陣列-差分陣列
這題就是N個氣球每次對[a,b]區間的氣球塗色,每次詢問第i個氣球被塗了多少次色。 顯然樸素的樹狀陣列實現單點修改+區間求和 對於這題區間修改+單點查詢,思想延續樹狀陣列。加上差分陣列的思想很容易知道我們只需要用樹狀陣列維護一個差分陣列,每次修改區間[a,b],我們只
差分陣列的總結
差分陣列的資料網上不太好找,蒟蒻表示網上學習這個自認為比較簡單的技巧是比較麻煩的,於是蒟蒻覺得自己寫下學習總結。 部落格上看拉個題目意思大概是: 給定一個長度為N的序列: 首先進行X次操作,每次操作在
差分陣列原理與其字首和的應用
看字你就應該知道,差分陣列存的是什麼了,即存的是每一項與前一項的差值。 例如這裡有 A[] 陣列: A[] = 0 1 3 8 4 5 7 ( 下標從 0 開始,A[0] 為 0 ) 根據 D[i] = A[i] - A
淺談差分約束問題
最短 HR .html 求解 不難 pos 表示 聯想 html 差分約束 差分約束是解決這樣一類問題 給出\(n\)個形如\(x[j]-x[i]<=k\)的式子,求\(x[n]-x[1]\)的最大/最小值 思路 其實這個問題是挺套路的 我們把給出的式子變一下 \(x