演算法競賽入門 洪水

2021-07-16 12:09:17 字數 1111 閱讀 5036

題目意思大概就是,有n*m個底面積為10*10的格仔,每個格仔內有各種不同高度的柱子,再有乙個降雨量,來填這些格仔,輸出水面高度,和被淹沒於沒被淹沒的比例。
#include

#include

#include

#include

using

namespace std;

intmain

() //輸入n*m個數,可以看成每個10*10格仔內放底面積為10*10,高為a【i】的柱子

//柱子高度可能會低於0,低於海拔高度

scanf

("%d"

,&rain);//輸入降雨量體積

sort

(a,a+n*m);//對柱子高低進行排序,排成一排的。

if(n*m>

1)//格仔數量大於1.

//先讓雨填最低的柱子,使其水面和下乙個柱子同高,以此類推。

if(rain-sum*

100>

0) //填到第i個柱子的時候,降雨量的剩餘。

//i!=n*m-1,就是不是最後一次

else

if(i==n*m-1

)//最後一次,降雨量還是大於0,所以海平面高度

}//為最高的柱子加上最後雨量除於總底面積,被淹沒//的柱子數量為全部,所以為百分之一百。

else//當最後雨量少於0,所以淹沒到第i個柱子就沒了

}printf

("region %d\n"

,p);

printf

("water level is %.2lf meters.\n"

,level);

printf

("%.2lf percent of the region is under water.

\n\n

",k2);

}else//當格仔只有乙個,應該好理解。

p++;

memset

(a,0

,sizeof

(a));

}return0;

}

演算法競賽入門 鐵軌

某城市有乙個火車站,鐵軌鋪設如圖所示。有n節車廂從a方向駛入車站,按進站順序編號為1 n。你的任務是讓它們按照某種特定的順序進入b方向的鐵軌並駛出車站。為了重組車廂,你可以借助中轉站c。這是乙個可以停放任意多節車廂的車站,但由於末端封頂,駛入c的車廂必須按照相反的順序駛出c。對於每個車廂,一旦從a移...

演算法競賽入門 謎題

有乙個5 5的網格,其中恰好有乙個格仔是空的,其他格仔各有乙個字母。一共有4種指令 a,b,l,r,分別表示把空格上 下 左 右的相鄰字母移到空格中。輸入初始網格和指令序列 以數字0結束 輸出指令執行完畢後的網格。如果有非法指令,應輸出 this puzzle has no final config...

洪水填充演算法 洪水填充 Flood fill 演算法

洪水填充 flood fill 演算法 從乙個起始節點開始把附近與其連通的節點提取出或填充成不同顏色顏色,直到封閉區域內的所有節點都被處理過為止,是從乙個區域中提取若干個連通的點與其他相鄰區域區分開 或分別染成不同顏色 的經典演算法。因為其思路類似洪水從乙個區域擴散到所有能到達的區域而得名。在gnu...