資訊學奧賽一本通oj1741 電子速度 題解

2022-03-16 16:46:39 字數 1540 閱讀 9023

對於$100 \%$的資料,$1≤n,m≤1e6 \ \ \ 0<=x_i,y_i<20170927 \ \ \ 1≤l_i,r_i≤n $

一開始沒看懂題。後來大致理解了一下,所謂的v是乙個二維向量,有x和y兩個引數。那個$\times$是叉乘,即$(x_i y_j-x_j y_i)$。

所以題意就是給你乙個x序列和y序列,對於每次詢問的區間$[l,r]$,求$\sum \limits _ ans &=& \sum \limits_^ \sum \limits_^r (x_i^2y_j^2+x_j^2y_i^2-2x_iy_ix_jy_j) \\ &=& \sum \limits_^r \sum \limits_^r x_i^2y_j^2 + \sum \limits_^r \sum \limits_^r x_j^2y_i^2 - \sum \limits_^r \sum \limits_^r 2x_iy_ix_jy_j \\ &=& \sum \limits_^r \sum \limits_^r [i \neq j]*x_i^2y_j^2 - \sum \limits_^r \sum \limits_^r [i \neq j]*x_iy_ix_jy_j \\ &=& \sum \limits_^r x_i^2 (\sum \limits_^r y_j^2 -y_i^2) - (\sum \limits_^r x_iy_i (\sum \limits_^r x_jy_j - x_iy_i)) \\ &=& \sum \limits_^r x_i^2 \sum \limits_^r y_j^2 - \sum \limits_^r x_i^2y_i^2 - (\sum \limits_^r x_iy_i \sum \limits_^r x_jy_j - \sum \limits_^r x_i^2 y_i^2) \\ &=& \sum \limits_^r x_i^2* \sum \limits_^ry_i^2 - (\sum \limits_^r x_iy_i)^2\end$

然後開三個樹狀陣列分別維護$^2,^2,x_i y_i$即可。

#include#include#includeusing namespace std;

#define pa pairtypedef long long ll;

const ll mod=20170927;

ll read()

while(isdigit(ch))x=x*10+ch-'0',ch=getchar();

return x*f;

}const int n=1e6+5;

int n,m;

ll c[3][n];

pa v[n];

int lb(int x)

void add(int x,ll val,int id)

ll query(int x,int id)

ll ask(int l,int r,int id)

int main()

while(m--)

if(op==2)

}return 0;

}

資訊學奧賽一本通 小球(drop)

許多的小球乙個乙個的從一棵滿二叉樹上掉下來組成fbt full binary tree,滿二叉樹 每一時間,乙個正在下降的球第乙個訪問的是非葉子節點。然後繼續下降時,或者走右子樹,或者走左子樹,直到訪問到葉子節點。決定球運動方向的是每個節點的布林值。最初,所有的節點都是false,當訪問到乙個節點時...

資訊學奧賽一本通 小球(drop)

this drop is gonna last forever!許多的小球乙個乙個的從一棵滿二叉樹上掉下來組成fbt full binary tree,滿二叉樹 每一時間,乙個正在下降的球第乙個訪問的是非葉子節點。然後繼續下降時,或者走右子樹,或者走左子樹,直到訪問到葉子節點。決定球運動方向的是每個...

資訊學奧賽一本通(C 版)

資訊學奧賽一本通 c 版 總目錄 1.資訊學奧賽一本通 c 版 刷題 記錄 2.資訊學奧賽一本通 c 版 第一部分 c 語言 第一章 c 語言入門 3.資訊學奧賽一本通 c 版 第一部分 c 語言 第二章 順序結構程式設計 4.資訊學奧賽一本通 c 版 第一部分 c 語言 第三章 程式的控制結構 5...