信息學(xué)國家集訓(xùn)隊作業(yè)wedding_第1頁
信息學(xué)國家集訓(xùn)隊作業(yè)wedding_第2頁
信息學(xué)國家集訓(xùn)隊作業(yè)wedding_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、WEDDING題目大意:Slavko 在為 Mirko 籌備一個婚禮。在婚禮中的一個重要的活動項目是一個被稱為“Train”的舞蹈。所有的客人排成一列,除了排頭的每一個人都把手搭面一個人的肩上,然后一起跳舞。Slavko 想他的“Train”更加好看。如果相鄰的兩個人的身高差別太大的話,就會顯得不美了。Mirko 的家庭是很守舊的,較小的成員是不能夠排在較大成員的前方的。不是成員的客人是可以排在任意位置的。給你所有客人(包括成員)的身高,還有成員的大小排列。寫一個程序,安排所有客人在 Train 中的位置,使得相鄰兩個人的身高差的絕對值之和最小。輸入格式:輸入文件的第一行是兩個整數(shù):N 和 K

2、(1=N=10000,1=K=1000,K=N),分別表示客人和成員的人數(shù)。接下來的 N 行每行有一個整數(shù) V(1000=V=2200),表示每個客人的身高??腿藦?1到 N,其中前K 個標(biāo)號的客人是成員,并且按照的降序排列。輸出格式:一行一個整數(shù),表示最小的身高差之和。解題思路:由于的 TRAIN 中在由成員之間的相對位置已經(jīng)確定,所以的任務(wù)就是向這個由成員所組成那些非成員的客人。成員所組成的原始 TRAIN 已經(jīng)存在一個“高度差”,而發(fā)現(xiàn)當(dāng)向相鄰兩個成員之間一個高度介于他們之間的客人的時候,這個“高度差”不會改變。也就是說,存在這樣一個策略,可以將高度介于成員的最大高度與最小高度之間的所有

3、客人全部到TRAIN 中,且使 TRAIN 的身高差之和不變。(對于每個非成員的客人,找到一個相鄰高度“包含”他的點)現(xiàn)在例,感覺告訴在于如何安排超族成員身高范圍的客人拿超出最高高度的客人為,應(yīng)該盡量將他們安排在一起,因為這樣才能使 TRAIN 中重復(fù)的“突起”盡量少。事實證明也是如此。考慮身高最高的那個客人,顯然將它安排在成員中最高成員的旁邊,或者安排在開頭結(jié)尾的時候,會增加最小的高度差。接下來又變成了熟悉的了,因為已經(jīng)沒有客人超出范圍,所以整個算法,如果只求這個最小差值,那么只要又可以采用先前的策略。一下最大最小值即可,復(fù)雜度為 O(N)。如果還要輸出隊列的順序,那么可以對所有客人的高度排

4、一下序,然后用 O(N)的掃描完成,總的復(fù)雜度是 O(NlogN)。參考程序:program wedding; constinfile=wedding.in;outfile=wedding.out;varn,k,tot:long; d:array1.10000 of long;procedure readdata; varf:text;c1:eger; beginassign(f,infile); reset(f); read(f,n,k);for c1:=1 to n do read(f,dc1); close(f);end;function mini(o1,o2:long) : long; beginif o1max then max:=dc1;if dc1gmax then gmax:=dc1;if dc1max then begin e1:=(gmax-max)*2; e2:=abs(dk-gmax);e3:=abs(d1-gmax); tot:=tot+mini(mini(e1,e2),e3);end;if gmhen begine1:=(min-gmin)*2; e2:=abs(dk-gmin);e3:=abs(d1-gmin); tot:=tot+mini(mini(e1,e2),e3);end; as

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論