1. 程式人生 > >洛谷P3932 浮遊大陸的68號島

洛谷P3932 浮遊大陸的68號島

。。 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號島