1049 數列的片段和

2021-09-29 06:45:44 字數 772 閱讀 5393

分析:20分,暴力求解多半超時,需要降低時間複雜度

列出n = 4 的所有子串行(底色黃),找規律(最簡方法見最後方,該分析有問題)

也就是說,將所有底為黃的數字相加就是要輸出的結果了

橫著看的話,當序列第i個元素i開頭,該行的所有和就等於i個i的全序列和(即從第乙個元素相加到第i個元素)相加,再減去i之前的所有全序列和

所以,在輸入時就計算出i的全序列和,放入陣列中,就簡單了

**如下

#include

using

namespace std;

double sub[

100005

], sum[

100005];

intmain()

double sum1 =

0, sum2 =0;

//sum1輸出值 sum2要減的值

for(

int i =

0; i < n; i++

)printf

("%.2lf"

, sum1)

;}

反饋

該**不能通過測試點2,答案錯誤;猜測是在大量的加減運算中損失了精度

更簡單準確的方法見此部落格

1049 數列的片段和

給定乙個正數數列,我們可以從中擷取任意的連續的幾個數,稱為片段。例如,給定數列 我們有 0.1 0.1,0.2 0.1,0.2,0.3 0.1,0.2,0.3,0.4 0.2 0.2,0.3 0.2,0.3,0.4 0.3 0.3,0.4 0.4 這 10 個片段。給定正整數數列,求出全部片段包含的...

1049 數列的片段和

給定乙個正數數列,我們可以從中擷取任意的連續的幾個數,稱為片段。例如,給定數列 我們有 0.1 0.1,0.2 0.1,0.2,0.3 0.1,0.2,0.3,0.4 0.2 0.2,0.3 0.2,0.3,0.4 0.3 0.3,0.4 0.4 這 10 個片段。給定正整數數列,求出全部片段包含的...

1049 數列的片段和

給定乙個正數數列,我們可以從中擷取任意的連續的幾個數,稱為片段。例如,給定數列 我們有 0.1 0.1,0.2 0.1,0.2,0.3 0.1,0.2,0.3,0.4 0.2 0.2,0.3 0.2,0.3,0.4 0.3 0.3,0.4 0.4 這 10 個片段。給定正整數數列,求出全部片段包含的...