HPU 1009 QAQ的區間價值

2021-07-24 09:26:13 字數 858 閱讀 1735

1009: qaq的區間價值

時間限制: 1 sec 記憶體限制: 128 mb

提交: 75 解決: 49

[提交][狀態][討論版]

題目描述

qaq有乙個整數序列,元素個數有n

個,分別為1,2,3…n−1,n。

假定用陣列a來依次記錄n個元素,那麼區間[i,j]的價值=sum(i,j)∗check(i,j)。

其中sum(i,j)=∑jk=ia[k],表示區間[i,j]元素之和。

check(i,j)=(j−i+1)

& 1?1:−1,表示區間長度為奇數返回1,反之返回−1

現在,qaq想知道所有子區間的價值之和。

對於區間[2,4]

而言,子區間有6個[2,2],[2,3],[2,4],[3,3],[3,4],[4,4]

。 輸入

第一行輸入乙個整數t

,代表有t組測試資料。

每組資料佔兩行,第一行輸入乙個整數n,代表序列的元素個數。

注:1<=t<=10000,1<=n<=100000

。 輸出

對每組測試資料,輸出序列所有子區間價值之和。

樣例輸入

3 1

2 99

樣例輸出

1 0

2500

推敲一下會發現當n為偶數時所有子區間價值為0。那麼當n為奇數時,只需考慮n作為右端點的貢獻。發現貢獻值是公差為2的等差數列13579…n直接求和即可。時間複雜度o(t)。

ac** :

#include

int main()

return

0;}

HPU 1010 QAQ的序列價值

1010 qaq的序列價值 時間限制 3 sec 記憶體限制 128 mb 提交 60 解決 13 提交 狀態 討論版 題目描述 qaq有乙個序列,元素個數有n 個。他認為乙個序列的價值的是 該序列中不同元素之和。比如說 序列 1,1,2,2 價值為3 現在qaq想知道所有子串行的價值之和。輸入 第...

hpu 1012 QAQ的區間統計

時間限制 1 sec 記憶體限制 128 mb 提交 142 解決 42 提交 狀態 討論版 qaq有乙個區間 l,r 已知qaq很喜歡長度為奇數的區間,現在請你告訴他有多少個長度為奇數的子區間。對於區間 2 4 來講,它的子區間有 2 2 2 3 2 4 3 3 3 4 4 4 共6個。為了簡化題...

HPU 1010 QAQ的序列價值 狀態壓縮

時間限制 3 sec 記憶體限制 128 mb 提交 60 解決 13 提交 狀態 討論版 qaq有乙個序列,元素個數有n n個。他認為乙個序列的價值的是 該序列中不同元素之和。比如說 序列 1,1,2,2 1,1,2,2 價值為3 3。現在qaq想知道所有子串行的價值之和。第一行輸入乙個整數t t...