noip2004合併果子用雙佇列原理什麼

時間 2023-03-04 00:05:08

1樓:

雙佇列的原理是因為a,b都是單調遞增佇列,所以你每次合併的就是最小的兩堆果子,就是使體力消耗最小的方法,因而是對的。

如果a空了,b還有一大堆數,就會變成和一開始只有a有資料一樣,這種情況不要考慮嗎?

這個不用考慮,因為你只要取兩堆最小的合併,從**取並不重要。

2樓:匿名使用者

不用這樣的,這道題目可以用插入排序或者堆排序。

先講一下插入排序。

輸入資料:4 (n)

9 5 1 2 (a[1..n])開始時:

i (i指標為1)

插入排序後:

itmp:=a[i]+a[i+1]

a[n+1]:=tmp;

n:=n+1;

i (i指標為3,即為原來加2)

這時將最後乙個資料進行插入。

再重複以上步驟。

**:var a:array[0..20000]of longint;

j,i,n,start,m,sum,k,t:longint;

beginreadln(n);

for i:=1 to n do read(a[i]);

for i:=2 to n do begina[0]:=a[i];j:=i-1;

while (a[0]0) do begina[j+1]:=a[j];

dec(j);

end;a[j+1]:=a[0];

end;start:=1;

m:=n;for i:=1 to n-1 do beginsum:=a[start]+a[start+1]+sum;

t:=a[start]+a[start+1];

inc(m);

a[m]:=t;

inc(start);

inc(start);

for j:=start to m do begina[0]:=a[j];k:=j-1;

while (a[0]0) do begina[k+1]:=a[k];

dec(k);

end;a[k+1]:=a[0];

end;end;

writeln(sum);

end. 堆排序比較難掌握,可以自己學一下,這裡就不講了。

急誰參加過NOIP

嗯本人參加過三次,一次普及組,兩次提高組 本人經驗事實上不是太豐富 我們這裡有3次普及組,3次提高組的牛人 經驗隨便說說好了 考試前,啊,初賽題目不一定要做得多,但題型要做全,一些計算機基礎的知識一定要搞定。讀 填程式要多做一些 考試時,大約前30 60分鐘做選擇與填空,因為各個人速度不同,所以這部...

2019noip提高組初賽選擇題有幾個選項

5個 包括單選和多選 初賽試題形式 初賽 初賽全部為筆試,滿分100分。試題由四部分組成 1 選擇題 共20題,每題1.5分,共計30分。每題有5個備選答案,前10個題為單選題 即每題有且只有乙個正確答案,選對得分 後10題為不定項選擇題 即每題有1至5個正確答案,只有全部選對才得分 2 問題求解題...

禮儀200分,禮儀 200分

58度空間 禮儀的概念 禮儀是指人們在社會交往中由於受歷史傳統 風俗習慣 宗教信仰 時代潮流等因素而形成,既為人們所認同,又為人們所遵守,是以建立和諧關係為目的的各種符合交往要求的行為準則和規範的總和。簡言之,禮儀就是人們在社會交往活動中應共同遵守的行為規範和準則。禮儀的含義 說實際,對於旨在維護森...