演算法競賽入門經典 習題4 10

2021-09-27 17:02:22 字數 1573 閱讀 4707

uva815

flooded!

這題就很不錯,雖然最後輸出浮點數,但是不同精度控制。

還有這題的背景倒是挺不錯的。

為了讓買房者心裡對房子被洪水淹了的情況有個譜,某家公司給住戶提供了乙個單元格大小為10公尺乘10公尺的沙盤區域,所有的新房都會建在單元格中。洪水可能來自雨水、雪水和自來水。洪水都會先把海拔最低的房子淹了(因為水往低處流)。因此為了簡便,我們假設這種情況成立,並且水不會滲入到地下。

從天氣預報可以得知該區域總的洪水量,從買房者的角度來看,最後需要確認洪水在此區域中的最終海拔,以及由多少單元格沒洪水完全淹沒(水的海拔高度嚴格大於該區域的海拔)

輸入mn表示區域大小,然後再輸入每個單元格的海拔,最後輸入洪水的體積(單位立方公尺);輸出洪水的最終海拔,以及淹沒百分比。

如果不容易理解的話可以想象成樓梯,水位沒過了第一級台階,才會繼續沒過第二級台階。沒過第一級台階需要的水量是乙個台階的體積,在此基礎上沒過第二級台階需要的水量是2個台階體積。

#include

#include

#include

#include

using

namespace std;

intmain()

}sort

(vielevation.

begin()

, vielevation.

end())

; size_t volume, elevation, cubic, cnt =1;

double dhigh, dpercent;

cin >> volume;

for(

; cnt < vielevation.

size()

; cnt++

) dhigh =((

double

)volume)

/ cnt /

100+ vielevation[cnt -1]

; cout <<

"region "

<< region++

<< endl;

cout <<

"water level is "

<<

setprecision(2

)<< fixed << dhigh <<

" meters."

<< endl;

cnt =0;

for(

auto i : vielevation)

dpercent =((

double

)cnt)

/ vielevation.

size()

*100.0

; cout << dpercent <<

" percent of the region is under water."

<< endl;

cout << endl;

}return0;

}/*3 325 37 45

51 12 34

94 83 27

10000

0 0*/

演算法競賽入門經典習題2 6

用1,2,3,9組成3個三位數abc,def和ghi,每個數字恰好使用一次,要 求abc def ghi 1 2 3。按照 abc def ghi 的格式輸出所有解,每行乙個解 思路 如果首先要保證每個數字都用一次,那麼這個題就會變得很麻煩,所以就先讓abc,def,ghi產生倍數關係然後對 這三個...

演算法競賽入門經典 習題3 7

uva1368 dna consensus string 本來以為題目是要在已有序列中找乙個最小的序列,後來仔細讀了下題才發現是要構造乙個距離最小的序列。感覺這道題應該就是貪心演算法吧?每一位和已有序列的對應位差得越少,總體也就越少。include include include include u...

演算法競賽入門經典 習題4 6

uva508 morse mismatches 各種地方描述的這道題目不一樣。精確匹配時,有的地方說輸出最短的 長度相同再按照字典序排序 有的地方說輸出字典序最小的 模糊匹配時,必須是刪除最少字元後完全匹配,或者增加最少字元後精確匹配才可以輸出,輸出跟字典序好像沒關係 udebug上的測試用例就是先...