C 一本通 1 1 例 5 智力大衝浪

2021-10-04 20:04:27 字數 2100 閱讀 9567

一本通題庫-1426

libreoj-10004

vjudge

小偉報名參加**電視台的智力大衝浪節目。本次挑戰賽吸引了眾多參賽者,主持人為了表彰大家的勇氣,先獎勵每個參賽者m

mm元。先不要太高興!因為這些錢還不一定都是你的。接下來主持人宣布了比賽規則: 首先,比賽時間分為n個時段(n≤

500)

(n≤500)

(n≤500

),它又給出了很多小遊戲,每個小遊戲都必須在規定期限ti前完成(1≤

ti≤n

)(1≤t_i≤n)

(1≤ti​

≤n)。如果乙個遊戲沒能在規定期限前完成,則要從獎勵費m

mm元中扣去一部分錢w

iw_i

wi​,w

iw_i

wi​為自然數,不同的遊戲扣去的錢是不一樣的。當然,每個遊戲本身都很簡單,保證每個參賽者都能在乙個時段內完成,而且都必須從整時段開始。主持人只是想考考每個參賽者如何安排組織自己做遊戲的順序。作為參賽者,小偉很想贏得冠軍,當然更想贏取最多的錢! 注意:比賽絕對不會讓參賽者賠錢!

輸入共4

44行。

第一行為m

mm,表示一開始獎勵給每位參賽者的錢;

第二行為n

nn,表示有n

nn個小遊戲; 第三行有n

nn個數,分別表示遊戲1~n

1~n1~

n的規定完成期限;

第四行有n

nn個數,分別表示遊戲1~n

1~n1~

n不能在規定期限前完成的扣款數。

僅1

11行。表示小偉能贏取最多的錢。

10000

74 2 4 3 1 4 6

70 60 50 40 30 20 10

9950
n

≤500,1

≤ti≤

nn≤500,1≤t_i≤n

n≤500,

1≤ti

​≤n

貪心。題意簡單地說就是給你m元錢讓你做n個任務,每乙個任務要花一整天做,而且每個任務都有自己的截止日期,若是在截止日期之前沒做完會扣掉相應的錢。

目的是為了得到更多的錢,就需要扣最少的錢,所以要將扣錢當作首要來考慮,再去考慮截止日期。按扣錢數由大到小,截止日期由大到小排序。因為錢數越大越重要,截止日期越靠後,完成它的時間就越長。定義乙個vis陣列來標記是否用過那天,每乙個物品都從截止日期往前搜尋直到有一天沒有用過。越晚做越好,因為我不僅能做,還不占用前面的時間。若是沒有符合條件,則扣錢。

#pragma gcc optimize(3,"ofast","inline")

#pragma g++ optimize(3,"ofast","inline")

#include

#include

#include

#include

#include

#define ri register int

#define re(i,a,b) for(ri i=a; i<=b; i++)

#define ms(i,a) memset(a,i,sizeof(a))

#define max(a,b) (((a)>(b)) ? (a):(b))

#define min(a,b) (((a)<(b)) ? (a):(b))

using

namespace std;

typedef

long

long ll;

intconst n=

505;

struct node

} a[n]

;int m,n;

int vis[n]

;int

main()

}if(flag)

} sum+

=a[i]

.w;}

}printf

("%d\n"

,m-sum)

;return0;

}

一本通 1 1 例 5 智力大衝浪

題目link 首先根據貪心,容易得出應該盡可能的不失去扣錢數多的遊戲,因此先按照扣錢數進行排序。隨後從後往前列舉時間,能完成就完成,因為有可能出現扣錢數多的遊戲但時間寬裕 扣錢數相對少但時間緊的情況,因為答案要求最大,所以盡量每個遊戲的時間都向後安排,因為前面的時間是所有遊戲都最可能用的,而後面的時...

1426 例題5 智力大衝浪

小偉報名參加 電視台的智力大衝浪節目。本次挑戰賽吸引了眾多參賽者,主持人為了表彰大家的勇氣,先獎勵每個參賽者m元。先不要太高興!因為這些錢還不一定都是你的。接下來主持人宣布了比賽規則 首先,比賽時間分為n個時段 n 500 它又給出了很多小遊戲,每個小遊戲都必須在規定期限ti前完成 1 ti n 如...

一本通 1 1 例 1 活動安排

題目link 貪心即可,將活動按右端點排序,排序後能選則選。o n 證明 首先對於乙個前面都為最優序列的前提下,如果對於乙個活動 a 使它發生是一種最優序列,然後再對於另乙個活動 b 它的結束時間比 a 早,並且開始時間也滿足條件,那麼根據貪心就可以選它,因為它既合法又是一種最優序列。1 inclu...