解題報告 商品推薦走馬燈

2021-07-03 22:04:15 字數 1378 閱讀 9372

有乙個新的研究顯示,人在看見一系列的時,如果它們的排列有一定的軸對稱性,則會更為覺得賞心悅目。根據這個特性,作為阿里巴巴旗下重要的電子商務交易平台的**,希望了解商品推薦的走馬燈現在的賞心悅目情況,以便判斷是否之後需要做出調整。例如,當價值分別為 1,2,1 的商品排列在一起的時候,人們可以看到它的所有非空區間 [1]、[2]、[1]、[1,2]、[2,1]、[1,2,1] 中有四個是軸對稱的,所以這組的展示價值是所有軸對稱的非空區間的所有價值總和 1 + 2 + 1 + (1 + 2 + 1) = 8。

對於現在**商品推薦的走馬燈序列裡的,我們從左到右將它們自 1 開始依次遞增編號。現在我們希望了解,對於每次由兩個編號 li, ri 組成的第i次詢問,若將 li 到 ri 的這些選出進行展示,他們的展示價值是多少。

輸入格式

第一行輸入兩個整數 n (1 ≤ n ≤ 105), m (1 ≤ m ≤ 105),分別代表總數和詢問次數。

第二行一共 n 個整數 ci (-100 ≤ ci ≤ 100),表示從編號 1 到編號 n 的價值。

接下來 m 行,每行兩個整數 li, ri (1 ≤ li ≤ ri ≤ n),表示一組詢問 [li, ri]。

輸入資料保證詢問區間合法,價值 ci 滿足 -100 ≤ ci≤ 100。

對於簡單版本,1 ≤ n, m ≤ 300;

對於中等版本,1 ≤ n ≤ 20000,1 ≤ m ≤ 3000;

對於困難版本,1 ≤ n, m ≤ 100000。

輸出格式

一共輸出 m 行,每行輸出一組詢問對應的展示價值。

樣例1輸入:

5 2

1 1 0 1 0

2 41 2

輸出:

4

4

做出來時,一小時31分鐘了,不知道能不能ac了

#include#includeusing namespace std;

class segmenttreenode2

}; class solution

int query(segmenttreenode2 *root,int start,int end,vector&a)

if(start>=root->right->start)

else if(end<=root->left->end)else

}

};int main()

solution s;

segmenttreenode2 *root=s.build(0,n-1,d);;

for(int i=0;i} }

文字走馬燈效果

文字走馬燈效果 最近碰到的問題,由於label的size固定,而label.caption太長,無法完整顯示出來,要求實現文字走馬燈效果,依次顯示出完整的內容。文字走馬燈效果有幾種方法 1 通過移動label.left值實現,但label會移動。不符合要求 2 不斷複製lable.caption來實...

progressBar走馬燈設定

初始值visible false 讓progressbar1出現時 progressbar1.visible true progressbar1.style progressbarstyle.marquee 走馬燈 讓它消失時 progressbar1.visible false progressb...

vue Element UI走馬燈元件重寫

1 element ui走馬燈元件 carousel 分析一波源 carousel src main.vue 檔案為 el carousel檔案主要功能 carousel src item.vue 檔案為 el carousel item 功能 2 carousel src main.vue檔案詳解...