一年一度的「跳石頭」比賽又要開始了!
這項比賽將在一條筆直的河道中進行,河道中分布著一些巨大岩石。組委會已經選擇好了兩塊岩石作為比賽起點和終點。在起點和終點之間,有 nn 塊岩石(不含起點和終點的岩石)。在比賽過程中,選手們將從起點出發,每一步跳向相鄰的岩石,直至到達終點。
為了提高比賽難度,組委會計畫移走一些岩石,使得選手們在比賽過程中的最短跳躍距離盡可能長。由於預算限制,組委會至多從起點和終點之間移走 mm 塊岩石(不能移走起點和終點的岩石)。
輸入格式:
第一行包含三個整數 l,n,ml,n,m ,分別表示起點到終點的距離,起點和終點之間的岩石數,以及組委會至多移走的岩石數。保證 l≥1l≥1 且 n≥m≥0n≥m≥0 。
接下來 nn 行,每行乙個整數,第 ii 行的整數 di(0典型的貪心問題, 求最短距離最大值, 但我一開始抉擇的方向弄反了.
首先要求的是最短距離最大值, 只是乙個upper_bound的問題.
若當前距離可以的話, 就要去考慮更大的值.
若當前距離不可以的話, 就要去考慮最小的值.
// p2678 跳石頭
#include #include #include #include #include #include #include #include #include #include const int maxn = 5e4 + 600;
typedef long long ll;
using namespace std;
int l, n, m;
int stone[maxn];
bool judge(int limit)
else}}
if(l - lastpos < limit)
return true;
}int main()
int lo = 0, mi, hi = 0x3f3f3f3f;
int half;
int length = hi - lo;
while(length)
else
}printf("%d\n", lo - 1);
return 0;
}
NOIP2015 洛谷2678 跳石頭
題目背景 一年一度的 跳石頭 比賽又要開始了 題目描述 這項比賽將在一條筆直的河道中進行,河道中分布著一些巨大岩石。組委會已經選擇好了兩塊岩石作為比賽起點和終點。在起點和終點之間,有 n 塊岩石 不含起點和終 點的岩石 在比賽過程中,選手們將從起點出發,每一步跳向相鄰的岩石,直至到達 終點。為了提高...
NOIP2015跳石頭(洛谷2678)
標籤 二分 題目背景 一年一度的 跳石頭 比賽又要開始了 題目描述 這項比賽將在一條筆直的河道中進行,河道中分布著一些巨大岩石。組委會已經選擇好了兩塊岩石作為比賽起點和終點。在起點和終點之間,有 n 塊岩石 不含起點和終點的岩石 在比賽過程中,選手們將從起點出發,每一步跳向相鄰的岩石,直至到達 終點...
洛谷 P2678 跳石頭
原題 這項比賽將在一條筆直的河道中進行,河道中分布著一些巨大岩石。組委會已經選擇好了兩塊岩石作為比賽起點和終點。在起點和終點之間,有 nn 塊岩石 不含起點和終點的岩石 在比賽過程中,選手們將從起點出發,每一步跳向相鄰的岩石,直至到達終點。為了提高比賽難度,組委會計畫移走一些岩石,使得選手們在比賽過...