noip2018模擬題(類揹包 貪心)

2022-09-01 13:33:12 字數 2198 閱讀 1796

馬拉松冰球賽

(marathon.pas/c/cpp)

馬拉松冰球錦標賽的日子就要到了。正如馬拉松冰球比賽中經常出現的那樣,比賽時間

m分鐘。和常規的冰球比賽一樣,在每一給定時刻,場上兩隊各有6球員。然而,一

場馬拉松冰球比賽可以持續很長時間,所以教練帶了一群球員,這樣當球員們累了的時候,

他們可以進行替換。

其中乙個名為 ante 的教練是我們故事的主角。ante 帶了n個球員參加比賽。對於每一

個球員,他知道兩個引數:球員的能力值k和耐力值i

耐力值是指球員參賽的最大總時間。

假設乙個球員先參加 x 分鐘,然後休息,再參加 y 分鐘,他的總參賽時間就是 x+y。當一

個球員的總參賽時間等於其耐力值的時候,他就會感到疲憊,不能繼續參賽,所以這個時候,

就需要其他人來代替他,否則他會暈倒在賽場上,最終被送進醫院

(馬拉松冰球是乙個危險的專案)。

在乙個給定時刻,隊伍的能力值就是當前參賽隊員能力值的總和。ante 並不是乙個偉

大的教練,所以他要求你拿出最初的六名球員和替補球員的方案,以便他能達到每個時刻隊

伍能力值總和的可能的最大值z。保證一定能找到一種方案,使得每個時刻場上都有 6 名球員。

舉個例子,假設比賽時間為 3 分鐘,而第一分鐘隊伍的能力值是 15,第二分鐘隊伍的能力值是 12,第三分鐘隊伍的能力值是 14,z就等於 15+12+14=41。

請注意:在馬拉松冰球賽中是沒有守門員的,因為比賽必須有趣。

【輸入】

第一行輸入兩個正整數 m 和 n(1≤m≤500 000,6≤n≤500000),分別表示比賽的持續時間(以分鐘為單位),和 ante 帶領的球員數量。

接下來 n 行,每行兩個正整數 k 和 i(1≤k≤100 000,1≤i≤m),表示每個球員的能力值和耐力值。

球員按照輸入順序,從 1 到 n 編號。

【輸出】

第一行包含題目要求的可能的最大值 z。

【輸入輸出樣例】

200 6

6600

3 200

4 200

5 200

6 200

7 200

8 200

9 91260

10 3

9 313 9

5 315 9

100 9

3 62 6

1 63 9

1610

100 3

100 3

100 3

100 3

100 2

100 1

50 1

30 2

1 1這道題雖然是一道比較水的題目

但是也然我認識到一些比較重要的東西

如揹包能求出最優值,而一些貪心則會導致演算法錯誤

比如這道題,若直接貪心,那麼就會導致一些值大的運動員無法得到足夠時間發揮,

但是用揹包思想處理的話,就不會產生此類情況,因為用容量減,就不會出現一些選手得不到全部時間發揮

揹包會自我調控到能替代的運動員後面替換之

所以以後遇到類似題目,一定學會轉換思想,換成揹包試試

#include#include

#include

using

namespace

std;

typedef

long

long

ll;const

int maxn=500000+10

;struct

my;my a[maxn];

bool cmp(const my &x,const my &y)

intmain()

int p=0

; sort(a+1,a+1+n,cmp);

m*=6

;

for (int i=1;i<=n;i++)

else

if(m>0

) }

printf(

"%lld

",ans);

return0;

}

完全揹包 NOIP2018 貨幣系統

在的國度中共有 n 種不同面額的貨幣,第 i 種貨幣的面額為 a i 你可以假設每一種貨幣都有無窮多張。為了方便,我們把貨幣種數為 n 面額陣列為 a 1.n 的貨幣系統記作 n,a 在乙個完善的貨幣系統中,每乙個非負整數的金額 x 都應該可以被表示出,即對每乙個非負整數 x 都存在 n 個非負整數...

NOIP2018模擬9 15總結

就是這樣 分數100 80 60 240 rank1 暴力真是爽 t1題意 有n個點,m條邊,k個特殊點,邊權為1 求每個點到離他最遠的特殊點的最短距離 nk 10000000 顯然暴力 t1 include define n 300001 using namespace std int i,j,k...

NOIP2018模擬賽2018 10 18 輕功

description 題目背景 尊者神高達進入了基三的世界,作為乙個 mmorpg 做任務是必不可少的,然而跑地圖卻令人十分不爽。好在基三可以使用輕功,但是尊者神高達有些手殘,他決定用梅花樁練習輕功。題目描述 一共有 n 個木樁,要求從起點 0 開始,經過所有梅花樁,恰好到達終點 n,尊者神高達一...