真是要炸,乙個題看起來挺常規但oj就是一直給 超時,超時,超時,沒有辦法因為在自己看來演算法和結果都是沒有問題,所以在**格式上動了點心思,結果時間雖然有所減少但是超時了。
這是原題描述
51nod - 1081下面附上自己最初的**,當然我認為這是初學者都最先想到的辦法。
下面附上從度娘那裡學來的字首和演算法,這種演算法能夠有效的降低演算法複雜度以及時間複雜度,在某型別問題裡應該是很常用的。#include
int main()
return
0;}
那麼到底什麼是字首和演算法呢?int main()
scanf("%d",&q);
for(;q>0;q--)
return
0;}
就以這道題為例,即為通過提前算好各前i項和,在後面查詢時 能夠大量減少計算量,避免重複計算,節省時間,不過需要注意相應的下標。
51Nod 1081 子段求和(字首和)
基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 給出乙個長度為n的陣列,進行q次查詢,查詢從第i個元素開始長度為l的子段所有元素之和。例如,1 3 7 9 1,查詢第2個元素開始長度為3的子段和,1 1。3 7 9 19,輸出19。第1行 乙個數n,n為陣列的長度 2 n...
51nod 1081 子段求和
1081 子段求和 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 給出乙個長度為n的陣列,進行q次查詢,查詢從第i個元素開始長度為l的子段所有元素之和。例如,1 3 7 9 1,查詢第2個元素開始長度為3的子段和,1 1。3 7 9 19,輸出19。input 第1行 ...
51NOD 1081 子段求和
1081 子段求和 給出乙個長度為n的陣列,進行q次查詢,查詢從第i個元素開始長度為l的子段所有元素之和。例如,1 3 7 9 1,查詢第2個元素開始長度為3的子段和,1 1。3 7 9 19,輸出19。input 第1行 乙個數n,n為陣列的長度 2 n 50000 第2 至 n 1行 陣列的n個...