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...