nyoj 691 青蛙過河

2021-06-14 12:50:52 字數 641 閱讀 9317

///這道題好像是青蛙過河,我也沒有翻譯,因為之前做過乙個這樣的題,就是一條河有l寬,河中有n個石頭,青蛙可以跳到石頭上

這n個石頭距離某個岸邊的距離為a[i];然後青蛙過河最多跳m次,問青蛙最少需要一次跳多遠的能力才能夠過河;

解法就是貪心演算法,加二分答案;當然好像不二分也能過;列舉也行;

先把a[i]從小到大排序,然後找到找到兩個中間距離最遠的距離maxlen即max(a[i]-a[i-1])(也可能為a[1]或l-a[n]);

然後從maxlen到l進行列舉;

**如下:

#include#include #include int a[500050];

int maxlen;

int l;

int m,n;

int comp(const void *a,const void *b)

int fin(int mid)

} cont++;

if(cont<=m)

return 1;

else

return 0;

}void execute()

{ int i,j;

for(i=0;i=1;--i)

{ a[i]=a[i]-a[i-1];

if(maxlen

青蛙過河問題

青蛙過河是乙個非常有趣的智力遊戲,其大意如下 一條河之間有若干個石塊間隔,有兩隊青蛙在過河,每隊有3 只青蛙,如 圖 10 19所示。這些 青蛙只能向前移動,不能向後移動,且一次只能有乙隻青蛙向前移動。在移動過程中,育蛙可以向 前面的空位中移動,不可一次跳過兩個位置,但是可以跳過對方乙隻青蛙進入前面...

N 青蛙過河

description 1 一條小溪尺寸不大,青蛙可以從左岸跳到右岸,在左岸有一石柱l,石柱l面積只容得下乙隻青蛙落腳,同樣右岸也有一石柱r,石柱r面積也只容得下乙隻青蛙落腳。2 有一隊青蛙從小到大編號 1,2,n。3 初始時 青蛙只能趴在左岸的石頭 l 上,按編號乙個落乙個,小的落在大的上面 不允...

N 青蛙過河

description 1 一條小溪尺寸不大,青蛙可以從左岸跳到右岸,在左岸有一石柱l,石柱l面積只容得下乙隻青蛙落腳,同樣右岸也有一石柱r,石柱r面積也只容得下乙隻青蛙落腳。2 有一隊青蛙從小到大編號 1,2,n。3 初始時 青蛙只能趴在左岸的石頭 l 上,按編號乙個落乙個,小的落在大的上面 不允...