ACWING演算法經典 797 一維差分演算法

2021-10-09 14:36:54 字數 994 閱讀 8480

原題鏈結

寫法一:先構造查分數列b[n]

#include

using

namespace std;

const

int n =

100010

;int n,m,l,r,c;

int a[n]

,b[n]

;int

main()

for(

int i=

1;i<=n;i++

) b[i]

=b[i-1]

+b[i]

;//求差分陣列的字首和, 字首和即為所求陣列

for(

int i=

1;i<=n;i++

)printf

("%d "

,b[i]);

return0;

}

寫法二:預設b[n]陣列為全0,每次輸入a[i]看成對b[n]操作一次,每次呼叫insert函式

#include

using

namespace std;

const

int n =

100010

;int n, m;

int a[n]

, b[n]

;int l, r, c;

void

insert

(int l,

int r,

int c)

intmain()

for(

int i =

1; i <= n; i ++

) a[i]

= a[i -1]

+ b[i]

;for

(int i =

1; i <= n; i ++

) cout << a[i]

<<

' ';

return0;

}

演算法 經典演算法

1 匹配演算法 匹配開始,從長的字串開始,匹配成功,長的和短的字串均向後匹配,而匹配失敗,則長的字串從開始的位置向後乙個字元,重新開始匹配,而短的字串則完全從頭開始。匹配演算法 param str1 長匹配字串 param str2 短的匹配字串 return 匹配成功 返回短字串在長字串開始的位置...

演算法經典題目

1.在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。思路 因為這是乙個從左到右遞增和從上到下遞增的二維陣列,例如下 1,2,3,4 2,3,4,5 3,4,5...

gbdt演算法 經典演算法 GBDT

梯度提公升樹 gradient boosting decison tree,gbdt 是整合學習boosting重要演算法。該方法是針對模型的偏差進行的優化。而隨機森林是基於對模型的方差進行優化。即使在整合演算法中,adaboost是利用前一輪迭代器弱學習器的誤差率來更新訓練集的權重。gbdt演算法...