NOIp2015, 洛谷P2678 跳石頭

2021-08-22 00:16:34 字數 1102 閱讀 7010

一年一度的「跳石頭」比賽又要開始了!

這項比賽將在一條筆直的河道中進行,河道中分布著一些巨大岩石。組委會已經選擇好了兩塊岩石作為比賽起點和終點。在起點和終點之間,有 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 塊岩石 不含起點和終點的岩石 在比賽過程中,選手們將從起點出發,每一步跳向相鄰的岩石,直至到達終點。為了提高比賽難度,組委會計畫移走一些岩石,使得選手們在比賽過...