洛谷鏈結
在小z的家鄉,有機房一條街,街上有很多機房。每個機房裡都有一萬個人在切題。小z剛刷完codechef,準備出來逛逛。
機房一條街有 n 個機房,第 i 個機房的座標為 xi ,小z的家座標為 0。小z在街上移動的速度為1,即從 x1 到 x2 所耗費的時間為 |x1 − x2|。 每個機房的學生數量不同,acm 題目水平也良莠不齊。小z到達第 i 個機房後,可以花 ti 的時間想題,然後瞬間 ak;當然,也可以過機房而不入。
小z現在只有 m 個單位時間,之後他就該趕著去打 codeforces 了。現在他想知道自己最多能在多少個機房 ak,希望你幫幫他。
第一行包含兩個整數 n,m。
接下來 n 行,每行包含兩個整數 xi,ti 。
第一行包含乙個整數,表示小z最多能 ak 的機房數量。
2 10
1 100
5 51
思路:看見這道題,再一看標籤,就感覺是貪心,但有乙個問題,就是如何保證選取哪乙個,可以想到每一次都用堆記錄,如果當前的時間超過了m,那麼就減去最大的那乙個任務的用時,注意:一定要先新增入堆,再取出最大的值,因為有可能新增的值最大,這樣就減少了判斷。詳情看**;
#include#include#include#define int long long
using namespace std;
struct lx a[100005];
bool cmp(lx l, lx r)
int min(int x, int y)
priority_queueq;
signed main() sort(a + 1, a + 1 + n, cmp);//按距離排序
for(int i = 1; i <= n; i ++)
} printf("%lld", ans);
}
小Z的AK計畫
洛谷鏈結 在小z的家鄉,有機房一條街,街上有很多機房。每個機房裡都有一萬個人在切題。小z剛刷完codechef,準備出來逛逛。機房一條街有 n 個機房,第 i 個機房的座標為 xi 小z的家座標為 0。小z在街上移動的速度為1,即從 x1 到 x2 所耗費的時間為 x1 x2 每個機房的學生數量不同...
Luogu 小Z的AK計畫
luogu2107 一開始打了乙個60分的暴力dp,結果一分都沒得 本地調了好久才發現是沒開long long。由於我的dp方程沒有任何性質,就是乙個01揹包,所以就沒啥可優化的了。這個題的正解其實不是dp,而是貪心 由於是單向的走,在每個位置選用時少的機房ak總是好的,這也就等價於不在用時多的機房...
小Z的 AK 計畫 洛谷p2147
題目描述 在小z的家鄉,有機房一條街,街上有很多機房。每個機房裡都有一萬個人在切題。小z剛刷完codechef,準備出來逛逛。機房一條街有 n 個機房,第 i 個機房的座標為 xi 小z的家座標為 0。小z在街上移動的速度為1,即從 x1 到 x2 所耗費的時間為 x1 x2 每個機房的學生數量不同...