洛谷P3932 浮遊大陸的68號島
阿新 • • 發佈:2018-08-23
。。 mbo tex clas size 輸出 全部 strong bsp
妖精倉庫的儲物點可以看做在一個數軸上。每一個儲物點會有一些東西,同時他們之間存在距離。
每次他們會選出一個小妖精,然後剩下的人找到區間 $[l,r]$ 儲物點的所有東西,清點完畢之後問她,把這個區間內所有儲物點的東西運到另外一個倉庫的代價是多少?
比如儲物點$ i $有$ x $ 個東西,要運到儲物點$ j $,代價為
$x \times dist(i,j)$
dist就是倉庫間的距離。
當然啦,由於小妖精們不會算很大的數字,因此您的答案需要對19260817取模。
輸入輸出格式
輸入格式:
第一行兩個數表示 $n,m$
第二行 $ n-1 $ 個數,第 $ i $ 個數表示第 $ i $ 個儲物點與第 $ i+1 $ 個儲物點的距離
第三行 $n$ 個數,表示每個儲物點的東西個數
之後 $m$ 行每行三個數 $x,l,r$
表示查詢要把區間 $[l,r]$ 儲物點的物品全部運到儲物點x的花費
輸出格式:
對於每個詢問輸出一個數表示答案
第一次做lxl的題啊,dllxl名不虛傳。。。。。
這題居然是個O(1)查詢的前綴和。。。。。我又無恥的看了題解
我們先來看x在查詢區間左右兩側的情況
當x<l
ans= $$ \sum_{i=l_1}^{r_1} (d(x) * a(i) - d(i) * a(i)) $$
=$$ \sum_{i=l_1}^{r_1} d(x) * a(i) - \sum_{i=l_1}^{r_1}d(i) * a(i) $$
=$$ d(x)*\sum_{i=l_1}^{r_1} a(i) - \sum_{i=l_1}^{r_1}d(i) * a(i) $$
洛谷P3932 浮遊大陸的68號島