小Z的AK計畫

2021-10-13 13:11:19 字數 1071 閱讀 8701

洛谷鏈結

在小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)

intmin

(int x,

int y)

priority_queue<

int> q;

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 每個機房的學生數量不同...