原題鏈結
寫法一:先構造查分數列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演算法...