日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

河中跳房子(noiopenjudge,noip2015)

發布時間:2024/7/5 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 河中跳房子(noiopenjudge,noip2015) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

描述

每年奶牛們都要舉辦各種特殊版本的跳房子比賽,包括在河里從一個巖石跳到另一個巖石。這項激動人心的活動在一條長長的筆直河道中進行,在起點和離起點L遠 (1 ≤ L≤ 1,000,000,000) 的終點處均有一個巖石。在起點和終點之間,有N (0 ≤ N ≤ 50,000) 個巖石,每個巖石與起點的距離分別為Di (0 < Di < L)。

在比賽過程中,奶牛輪流從起點出發,嘗試到達終點,每一步只能從一個巖石跳到另一個巖石。當然,實力不濟的奶牛是沒有辦法完成目標的。

農夫約翰為他的奶牛們感到自豪并且年年都觀看了這項比賽。但隨著時間的推移,看著其他農夫的膽小奶牛們在相距很近的巖石之間緩慢前行,他感到非常厭煩。他計劃移走一些巖石,使得從起點到終點的過程中,最短的跳躍距離最長。他可以移走除起點和終點外的至多M (0 ≤ M ≤ N) 個巖石。

請幫助約翰確定移走這些巖石后,最長可能的最短跳躍距離是多少?

輸入

第一行包含三個整數L, N, M,相鄰兩個整數之間用單個空格隔開。

接下來N行,每行一個整數,表示每個巖石與起點的距離。巖石按與起點距離從近到遠給出,且不會有兩個巖石出現在同一個位置。

輸出

一個整數,最長可能的最短跳躍距離。

樣例輸入

25 5 2 2 11 14 17 21

樣例輸出

4

提示

在移除位于2和14的兩個巖石之后,最短跳躍距離為4(從17到21或從21到25)。

限制與約定

時間限制:1s

空間限制:128MB

#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> using namespace std; const int maxn = 50000 + 10 ; int dis[maxn]; int main() { // freopen("stone.in","r",stdin); // freopen("stone.out","w",stdout);int L,n,m;cin>>L>>n>>m;for(int i=1;i<=n;i++)scanf("%d",&dis[i]);int l=1,r=L;sort(dis+1,dis+n+1);while(l<r){int i,mid = ( l + r + 1 ) >> 1,pos(0),temp(0);for(i=1;i<=n;i++){if(dis[i]+mid>L) break;if(dis[i]-pos<mid) temp++;else pos = dis[i];}temp+=n-i+1;if(temp<=m) l=mid;else r=mid-1;}cout<<l<<endl;return 0; }

?

轉載于:https://www.cnblogs.com/hfang/p/11239892.html

總結

以上是生活随笔為你收集整理的河中跳房子(noiopenjudge,noip2015)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。