久違的月賽之一
time limit:1000msmemory limit:32768kb64bit io format:%i64d & %i64u
submit
status
description
好久沒舉月賽了,這次lqw給大家出了5道題,因為hsy學長宣傳的很到位,吸引了n個ddmm們來做,另一位kk學長說,全做對的要給金獎,做對4題要給銀獎,做對3題要給銅獎。統計資料的時候,發現每題分別在n個人中有n1、n2、n3、n4、n5個人通過,lqw靈機一動,問kk:「你猜,這次至少會有多少個人獲獎?」由於題目太簡單了,每題的通過人數一定大於等於最低獲獎人數。
input
第一行乙個數字t,表示有多少組資料,每組資料如下所示(1000 < t < 5000, 100<=n<=1000000, n1,...,n5<=n):
nn1 n2 n3 n4 n5
output
針對每組資料,輸出乙個數,表示最低獲獎人數。
sample input
247703844 3748 3296 3390 475950001944 2353 4589 2386 3837
sample output
31661703
faq | about virtual judge |
forum |
discuss |
open source project
思路:因為題目有
「每題的通過人數一定大於等於最低獲獎人數」這麼句話,所以也就是說獲得獎的人數肯定少於解出每道題的人數。所以咱們可以這樣想,首先咱們先假設讓每個人都做出兩道題,如果所有人數(設為n)*2大於等於五道題做出的總人數的話,那麼肯定不能保證所有的人都做出兩道題,也就是說沒有乙個人能夠做出三道題,所以最少人數是0。那麼如果n*2小於五道題做出的總人數的話,那麼還有m道題(m=五道題總人數-n*2)可以分配給這n個人,但是要想獲獎最少,那麼就得讓這n個人獲得金牌的人數足夠多,也就是說把這剩餘的m道題分給n個人,讓每個人都盡量是金牌。那麼答案就是用m除以3,如果整除的話,則結果就是這個答案,如果不能整除的話,結果就是這個答案+1,說明還有乙個人不是金牌。
#include
#include
#include
#include
#include
#include
#include
#define
max(a,b)(a>b?a:b)
#define
min(a,b)(atypedef
long
long ll;
using
namespace std;
intmain()}
return0;
}
久違的月賽之二
time limit:1000msmemory limit:32768kb64bit io format:%i64d & %i64u
submit
status
description
好久沒舉辦月賽了,這次lqw又給大家出了5道題,因為hsy學長宣傳的很到位,吸引了n個ddmm們來做,另一位kk學長說,全做對的要給金獎,做對4題要給銀獎,做對3題要給銅獎。統計資料的時候,發現每題分別在n個人中有n1、n2、n3、n4、n5個人通過,lqw問kk:「這次難度稍微提高了些,你再猜下,至少會有多少個人獲獎?」
input
第一行乙個數字t,表示有多少組資料,每組資料如下所示(100< t < 300, 10<=n<=100, n1,...,n5<=n):
nn1 n2 n3 n4 n5
output
針對每組資料,輸出乙個數,表示最低獲獎人數。
sample input
29276 72 72 53 928170 81 45 63 64
sample output
6458
faq | about virtual judge |
forum |
discuss |
open source project
hust acm/icpc team
貪心吧~
要想獲獎最少,那麼最好就是讓做出兩道題的人數盡量多,那麼咱們一開始先把五道題的解題數量排一下序。讓總的人數n*2--解出最多的兩道題的數量,然後和做出剩餘三道題目的數量的人數總和相比較,如果是小於,那麼肯定不夠分,則獲獎人數至少為0。那麼如果大於,就接著判斷獲得金牌和銀牌和銅牌的人數就行。
#include
#include
#include
#include
#include
#include
#include
#define
max(a,
b)(a>b?
a:b)
#define
min(a,
b)(aa:b)
typedef
long
longll;
using
namespace
std;
intmain
()sort(a
+1,a+6
); ///注意排序
sum=
sum-2*n
; ///先考慮:能否全部都做兩道題if(
sum<=
0) ///不夠沒人兩道 直接輸出0
printf("0
\n");else
else 如果剩餘的題,分完金牌,還沒分完
else ///、如果分完了銀牌,還剩題目沒分}}
}return0;
}
兩道題 的區別就在:「每題的通過人數一定大於等於最低獲獎人數」一句話~
G 久違的月賽之一
1 2 g 久違的月賽之一 time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status description 好久沒舉月賽了,這次lqw給大家出了5道題,因為hsy學長宣傳的很到位,吸引了n個ddmm們來...
FZU 2138 久違的月賽之一
先讓所有人都做對兩個題,那現在如果還有剩下的題的話就肯定有人獲獎,讓獲獎的人都做對五個題,因為最後一句話說了每題的通過人數一定大於等於最低獲獎人數,那這裡sum 3或者 sum 3 1 就是獲獎人數,不用考慮這個數大於最少ac數,這個是跟下一道題目的區別。因為做對5題的人數不可能超過最少ac數。好吧...
FZU 2138 久違的月賽之一
problem 2138 久違的月賽之一 好久沒舉月賽了,這次lqw給大家出了5道題,因為hsy學長宣傳的很到位,吸引了n個ddmm們來做,另一位kk學長說,全做對的要給金獎,做對4題要給銀獎,做對3題要給銅獎。統計資料的時候,發現每題分別在n個人中有n1 n2 n3 n4 n5個人通過,lqw靈機...