bzoj
luogu
你需要維護兩個陣列\(\,\\),資瓷一下三種操作。
1、給出\(l,r\),設\(\overline x,\overline y\)分別表示區間\([l,r]\)內\(x_i,y_i\)的平均數,求:
\[\frac^r(x_i-\overline x)(y_i-\overline y)}^r(x_i-\overline x)^2}
\]2、給出\(l,r,s,t\),令區間\([l,r]\)內每個\(x_i+=s,y_i+=t\)
3、給出\(l,r,s,t\),令區間\([l,r]\)內每個\(x_i=s+i,y_i=i+t\)
把詢問式的括號拆了,利用\(\overline x*(r-l+1)=\sum_^rx_i\)化簡一下式子:
\[\frac\sum x_i*\sum y_i}\sum x_i*\sum x_i}
\]所以只要維護區間的\(\sum x,\sum y,\sum xy,\sum x^2\)就行了。
操作2是乙個區間加,有:
\(\sum(x+\delta x)(y+\delta y)=\sum xy+\sum x*\delta y+\sum y*\delta x+(r-l+1)*\delta x*\delta y\)
操作3可以看作是先把區間變成\(x_i=y_i=i\)再做一次2操作。
區間覆蓋的時候要把操作2的\(lazy\)清空。
\(\sum_^i=\frac 12n*(n+1)\)
\(\sum_^i^2=\frac 16n*(n+1)*(2n+1)\)
#include#includeusing namespace std;
const int n = 1e5+5;
int n,m,tag_c[n<<2];double x[n],y[n],tag_x[n<<2],tag_y[n<<2];
struct datat[n<<2];
data operator + (data a,data b);
}void build(int x,int l,int r)
int mid=l+r>>1;
build(x<<1,l,mid);build(x<<1|1,mid+1,r);
t[x]=t[x<<1]+t[x<<1|1];
}void cover1(int x,int l,int r,double s,double t)
double cal1(int x)
double cal2(int x)
void cover2(int x,int l,int r)
void pushdown(int x,int l,int r)
if (tag_x[x]||tag_y[x])
}void modify1(int x,int l,int r,int ql,int qr,double s,double t)
pushdown(x,l,r);int mid=l+r>>1;
if (ql<=mid) modify1(x<<1,l,mid,ql,qr,s,t);
if (qr>mid) modify1(x<<1|1,mid+1,r,ql,qr,s,t);
t[x]=t[x<<1]+t[x<<1|1];
}void modify2(int x,int l,int r,int ql,int qr)
pushdown(x,l,r);int mid=l+r>>1;
if (ql<=mid) modify2(x<<1,l,mid,ql,qr);
if (qr>mid) modify2(x<<1|1,mid+1,r,ql,qr);
t[x]=t[x<<1]+t[x<<1|1];
}data query(int x,int l,int r,int ql,int qr)
int main()else
} return 0;
}
BZOJ 4821 Sdoi2017 相關分析
description frank對天文學非常感興趣,他經常用望遠鏡看星星,同時記錄下它們的資訊,比如亮度 顏色等等,進而估算出 星星的距離,半徑等等。frank不僅喜歡觀測,還喜歡分析觀測到的資料。他經常分析兩個引數之間 比如亮度和 半徑 是否存在某種關係。現在frank要分析引數x與y之間的關係...
bzoj 4821 Sdoi2017 相關分析
做法顯然 就是維護一顆線段樹 裡面裝4個東西 區間x的和 區間y的和 區間 x 2 的和 區間 xy 的和 然後裝4個標記 add操作對x的影響 add操作對y的影響 cover操作對x的影響 cover操作對y的影響 唯一要想一想的東西在於怎麼維護順序 我一開始的愚蠢做法是每個節點維護乙個nw n...
4821 Sdoi2017 相關分析
4821 sdoi2017 相關分析 time limit 10 sec memory limit 128 mb submit 191 solved 29 submit status discuss description frank對天文學非常感興趣,他經常用望遠鏡看星星,同時記錄下它們的資訊,比...