NOIP2015提高組 跳石頭

2022-05-19 10:37:11 字數 583 閱讀 3145

題目:洛谷p2678、vijos p1981、codevs4768、uoj#148。

題目大意:有n塊石頭,現在要從起點0依次跳過所有石頭跳到終點l。現在要去掉m塊石頭,使選手跳過的最短距離最長,求最長是多少。

解題思路:本題是最大化最小值問題,考慮二分答案解決。

判斷答案可行性用貪心。用now記錄前一塊石頭的位置。如果當前一塊石頭i和前一塊的差值小於當前答案時,令now=i,否則必定要去掉這塊石頭,計數器cnt+1。最後如果cnt≤m則答案可行。

時間複雜度$o(n\log _2 l)$。

c++ code:

#includeusing namespace std;

int l,n,m,a[50005];

bool ok(int ans)else ++cnt;

return cnt<=m;

}int main(void)

printf("%d\n",ans);

return 0;

}

NOIP2015提高組 跳石頭

問題描述 一年一度的 跳石頭 比賽又要開始了 這項比賽將在一條筆直的河道中進行,河道中分布著一些巨大岩石。組委會已經選 擇好了兩塊岩石作為比賽起點和終點。在起點和終點之間,有 n 塊岩石 不含起點和終 點的岩石 在比賽過程中,選手們將從起點出發,每一步跳向相鄰的岩石,直至到達 終點。為了提高比賽難度...

NOIP2015 洛谷2678 跳石頭

題目背景 一年一度的 跳石頭 比賽又要開始了 題目描述 這項比賽將在一條筆直的河道中進行,河道中分布著一些巨大岩石。組委會已經選擇好了兩塊岩石作為比賽起點和終點。在起點和終點之間,有 n 塊岩石 不含起點和終 點的岩石 在比賽過程中,選手們將從起點出發,每一步跳向相鄰的岩石,直至到達 終點。為了提高...

NOIP2015跳石頭(洛谷2678)

標籤 二分 題目背景 一年一度的 跳石頭 比賽又要開始了 題目描述 這項比賽將在一條筆直的河道中進行,河道中分布著一些巨大岩石。組委會已經選擇好了兩塊岩石作為比賽起點和終點。在起點和終點之間,有 n 塊岩石 不含起點和終點的岩石 在比賽過程中,選手們將從起點出發,每一步跳向相鄰的岩石,直至到達 終點...