16 7 16 C 1744 奶牛曬衣服

2021-07-15 01:42:33 字數 1464 閱讀 9210

description

在熊大媽英明的帶領下,時針和它的同伴生下了許多牛寶寶。熊大媽決定給每個寶寶都穿上可愛的嬰兒裝。於是,為牛寶寶洗曬衣服就成了很不爽的事情。

聖人王擔負起了這個重任。洗完衣服後,你就要弄幹衣服。衣服在自然條件下用1的時間可以曬乾a點濕度。摳門的熊大媽買了1台烘衣機。使用烘衣機可以讓你用1的時間使1件衣服除開自然曬乾的a點濕度外,還可烘乾b點濕度,但在1的時間內只能對1件衣服使用。

n件衣服因為種種原因而不一樣溼,現在告訴你每件衣服的濕度,要你求出弄幹所有衣服的最少時間(濕度為0為幹)。

input

第一行n,a,b;接下來n行,每行乙個數,表示衣服的濕度(1

<=濕度,a,b<=500000,1

<=n

<=500000)。

output

一行,最少時間。

sample input32

1123

sample output

1

解題思路:

首先看這道題的意思,我們可以很容易的得出每次選濕度最大的衣服去烘乾更優,那麼我們就可以用貪心的方法來做。比如樣例我們都插入q1中,那麼q1就為3 2 1,然後依次取出,第乙個 -a-b ,其他的 -a,插入q2,這時q2就為0 0 -1,這是就滿足題目要求,就把次數輸出。(至於滿足題目要求的判斷可以用乙個計數器,每次遇到乙個新的<=0的就+1)

我們發現,每次 -a-b 的就只有第乙個最大的數,而其他的都減了乙個 a 。所以換句話說就是所有都減 a ,而第乙個多減乙個 b 。那麼與其每個去減 a ,那還不如我們用乙個變數sum每次 +a ,這樣每次就只需要讓堆的跟(也就是最大的那個) -b 就ok了,最後只需要比較最大的那個是否 <=sum ,如果成立,就表示全部都<=sum 了。這就大大提高了效率!

這道題目表示虐pascal的堆,c++表示有許多關於堆的自帶函式,於是這道題目打得短,陣列都沒開!

code (no copy!僅供參考,若要給,請聘請)

#include

#include

#include

#define f(i,x,y) for(int i=x;i<=y;i++)

#define d(i,x,y) for(int i=x;i>=y;i--)

using

namespace

std;

const

int maxn=300050;

int n,a,b;

int x;

int ans=0;

priority_queue f;

inline

int read()

void init()

}void getout()

void work()

else

}}void check()

}int main()

奶牛曬衣服

392.奶牛曬衣服 描述 提交自定義測試 題目描述 在熊大媽英明的帶領下,時針和他的同伴生下了許多牛寶寶。熊大媽決定給每個寶寶都穿上可愛的嬰兒裝。於是,為牛寶寶洗曬衣服就成了很不爽的事情。聖人王擔負起了這個重任。洗完衣服後,你就要弄幹衣服。衣服在自然條件下用1的時間可以曬乾a點濕度。摳門的熊大媽買了...

奶牛曬衣服

熊大媽決定給每個牛寶寶都穿上可愛的嬰兒裝 於是 為牛寶寶洗曬衣服就成了很不爽的事情。熊大媽請你幫助完成這個重任 洗完衣服後 你就要弄幹衣服 衣服在自然條件下用 1 的時間可以曬乾 a 點濕度 摳門的熊大媽買了 1 台烘衣機 使用烘衣機可以讓你用 1 的時間使 1 件衣服除了自然曬乾 a 點濕度外,還...

奶牛專題2 奶牛曬衣服

問題描述 在熊大媽英明的帶領下,時針和它的同伴生下了許多牛寶寶。熊大媽決定給每個寶寶都穿上可愛的嬰兒裝。於是,為牛寶寶洗曬衣服就成了很不爽的事情。聖人王擔負起了這個重任。洗完衣服後,你就要弄幹衣服。衣服在自然條件下用1的時間可以曬乾a點濕度。摳門的熊大媽買了1台烘衣機。使用烘衣機可以讓你用1的時間使...