給定乙個長度為n的01序列,下標從0開始, 需要實現如下五種操作.
這就是一道數學推公式+線段樹維護區間 的典型例題!
在我判斷浮點數是否為0的時候大意了啊, 寫了1e-5, 結果wa了半天.
#include
#define rep(i, n) for (int i = 1; i <= (n); ++i)
using
namespace std;
typedef
long
long ll;
const
int n =
1e5+10;
double w[n]
;struct node t[n <<2]
;void
pushdown
(node& op,
double lazy)
void
pushdown
(int x)
void
pushup
(int x)
void
build
(int l,
int r,
int x =1)
;if(l == r)
return
;int mid = l + r >>1;
build
(l, mid, x <<1)
,build
(mid +
1, r, x <<1|
1);pushup
(x);
}void
modify
(int l,
int r,
double c,
int x =1)
pushdown
(x);
int mid = t[x]
.l + t[x]
.r >>1;
if(l <= mid)
modify
(l, r, c, x <<1)
;if(r > mid)
modify
(l, r, c, x <<1|
1);pushup
(x);
}node ask
(int l,
int r,
int x =1)
intmain()
else
if(k ==2)
printf
("%.4f\n"
,ask
(l, r)
.val /
(r - l +1)
);else
}return0;
}
洛谷 P1471 方差
題目背景 滾粗了的hansbug在收拾舊數學書,然而他發現了什麼奇妙的東西。題目描述 蒟蒻hansbug在一本數學書裡面發現了乙個神奇的數列,包含n個實數。他想算算這個數列的平均數和方差。輸入輸出格式 輸入格式 第一行包含兩個正整數n m,分別表示數列中實數的個數和操作的個數。第二行包含n個實數,其...
洛谷P1471 方差
題目描述 蒟蒻hansbug在一本數學書裡面發現了乙個神奇的數列,包含 n 個實數。他想算算這個數列的平均數和方差。輸入輸出格式 輸入格式 第一行包含兩個正整數 n m 分別表示數列中實數的個數和操作的個數。第二行包含 n 個實數,其中第 i 個實數表示數列的第 i 項。接下來m行,每行為一條操作,...
洛谷 P1471 方差
蒟蒻hansbug在一本數學書裡面發現了乙個神奇的數列,包含n個實數。他想算算這個數列的平均數和方差。那麼只要維護區間平方和,就可以求方差了。區間平方和,恩,push down稍微改一下即可。注意精度問題。include define n int 1e6 define ll long long us...