http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2177
題目描述
大家都知道,新生入學(xué)的前幾周要體檢,體檢的那一天 HH 早起(九點(diǎn)半)來到了校醫(yī)院,但是到了之后她發(fā)現(xiàn)排隊(duì)等候體檢的人太多了,而且人數(shù)在不斷的增加。體檢需要檢查許多個(gè)項(xiàng)目,每個(gè)項(xiàng)目都需要排隊(duì),而且隨著時(shí)間的推移,每個(gè)隊(duì)列的人數(shù)都在慢慢增加。
已知每個(gè)體檢項(xiàng)目的隊(duì)列都有兩個(gè)屬性(ai, bi):
1、如果 HH 在 0 時(shí)刻站在了這個(gè)隊(duì)列后,那么她需要 ai 秒就可以完成這個(gè)項(xiàng)目的體檢;
2、如果 HH 沒在這個(gè)隊(duì)列中,那么 HH 完成這個(gè)項(xiàng)目的時(shí)間每秒會(huì)在 ai 的基礎(chǔ)上增加 bi 秒。
作為一個(gè)測肺活量的時(shí)候怒吹了 1000+ 的大神,她希望能盡快體檢完畢去吃飯,所以選擇正確的體檢順序是非常非常重要的。
輸入
輸入包含多組測試數(shù)據(jù),對(duì)于每組測試數(shù)據(jù):
輸入的第一行為一個(gè)正整數(shù) n(1 ≤ n ≤ 10
5
),代表需要體檢的項(xiàng)目數(shù);
接下來 n 行每行為兩個(gè)正整數(shù) a,b(0 ≤ a, b < 1000), 依次代表第1-n個(gè)隊(duì)列的兩個(gè)屬性。
注意:64-bit 整型請使用 long long 來定義,并且使用 %lld 或 cin、cout 來輸入輸出,請不要使用 __int64 和 %I64d。
輸出
輸出完成體檢的最短時(shí)間,由于最后結(jié)果可能會(huì)很大,所以你只要輸出結(jié)果對(duì)365×24×60×60取余后的結(jié)果即可。
示例輸入
2
3 1
2 3
5
1 2
2 3
3 4
4 5
5 6
示例輸出
7
1419
提示
樣例解釋:
第一組樣例,最短時(shí)間:HH 先排在第二個(gè)隊(duì)伍,用時(shí) 2 秒體檢完成第二個(gè)項(xiàng)目,然后排在第一個(gè)隊(duì)伍,用時(shí) 5 秒完成第一個(gè)項(xiàng)目,總用時(shí) 7 秒。
第二組樣例,最短時(shí)間:HH 按照給定的順序, 用時(shí) 1 秒體檢完成第一個(gè)項(xiàng)目,用時(shí) 5 秒完成第二個(gè)項(xiàng)目,用時(shí) 27 秒完成第三個(gè)項(xiàng)目,用時(shí) 169 秒完成第四個(gè)項(xiàng)目,用時(shí) 1217 秒完成第五個(gè)項(xiàng)目,總用時(shí) 1+5+27+169+1217=1419 秒。
1
#include<stdio.h>
2
#include<cstring>
3
#include<algorithm>
4
#include<iostream>
5
using
namespace
std ;
6
const
int
maxn =
100010
;
7
struct
node
8
{
9
int
a,b ;
10
double
c ;
11
bool
friend
operator
<
(node x,node y)
12
{
13
return
x.c <
y.c;
14
}
15
}ss[maxn];
16
int
main()
17
{
18
int
n ;
19
while
(cin>>
n)
20
{
21
for
(
int
i =
0
; i <= n-
1
; i ++
)
22
{
23
scanf(
"
%d %d
"
,&ss[i].a,&
ss[i].b);
24
ss[i].c = ss[i].a*
1.0
/
ss[i].b;
25
}
26
sort(ss,ss+
n);
27
long
long
sum = ss[
0
].a;
28
for
(
int
i =
1
; i <= n-
1
; i ++
)
29
{
30
sum = (sum+sum*ss[i].b+ss[i].a)%(
365
*
24
*
60
*
60
);
31
}
//
取余這個(gè)地方一定不能在輸出那兒取余,因?yàn)閘onglong存不了那么大的...........
32
printf(
"
%lld\n
"
,sum);
33
}
34
return
0
;
35
}
這個(gè)題不是特別難,但是要注意,longlong是存不了太大的數(shù)據(jù)的
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

