期末考試 nyoj 757

2022-09-03 16:36:09 字數 1080 閱讀 2831

時間限制:1000 ms  |  記憶體限制:65535 kb

難度:2

描述馬上就要考試了,小t有許多作業要做,而且每個老師都給出來了作業要交的期限,如果在規定的期限內沒

交作業就會扣期末成績的分數,假設完成每門功課需要一天的時間,你能幫助小t扣除的分數最小嗎?

輸入輸入n,表示n門功課(n<2000),接下來n行,每行兩個數a,b,分別表示交作業的最後期限,遲交扣除的分數。

(以檔案結尾)

輸出輸出扣除的最小分數。

樣例輸入

3

3 10

3 53 1

31 6

3 21 3

71 3

4 26 1

4 72 6

4 53 4

樣例輸出

035

這個題我做的時候這是一頭霧水,看了網上的**才知道該怎麼寫!下面把我的想法給大家說一下!

分析:你首先要對日期進行排序,要是沒有重複的日期就好了,一天乙個,這肯定掛不了科啊!。有也沒事,先按日期從小到大,有重複日期的,按分值的從小到大排序。

排好後,我們本著一天乙個的原則,當遇到重複日期的時候就要有所取捨了,那肯定是不要分值少的啊,所以就和前面最小的比較,看哪個更小,就不複習了分數不要了!

不要的分數加起來就是最小的了!這個題就是要利用優先佇列了!因為它能自動排序,省下不少事!

1 #include2 #include3 #include4

using

namespace

std;

5structas6

aa[3000

];//定義乙個存放輸入資料的結構體

10bool cmp(as m,as

n)//定義結構體排序的順序

1118

intmain()

1944

else

45 sum+=aa[i].y;46}

47}48 printf("

%d\n

",sum);49}

50return0;

51 }

nyoj757 期末考試 佇列

期末考試 時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 馬上就要考試了,小t有許多作業要做,而且每個老師都給出來了作業要交的期限,如果在規定的期限內沒 交作業就會扣期末成績的分數,假設完成每門功課需要一天的時間,你能幫助小t扣除的分數最小嗎?輸入輸入n,表示n門功課 n 2...

NYOJ 757 期末考試(優先佇列)

時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 馬上就要考試了,小t有許多作業要做,而且每個老師都給出來了作業要交的期限,如果在規定的期限內沒 交作業就會扣期末成績的分數,假設完成每門功課需要一天的時間,你能幫助小t扣除的分數最小嗎?輸入輸入n,表示n門功課 n 2000 接...

757 期末考試

時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 馬上就要考試了,小t有許多作業要做,而且每個老師都給出來了作業要交的期限,如果在規定的期限內沒 交作業就會扣期末成績的分數,假設完成每門功課需要一天的時間,你能幫助小t扣除的分數最小嗎?輸入輸入n,表示n門功課 n 2000 接...