Luogu1843 奶牛曬衣服

2022-05-20 18:44:23 字數 485 閱讀 6533

題目大意:

你要曬n件衣服,第i件衣服有w[i]滴水,

每件衣服每秒鐘會自然風乾a滴水,將這件衣服放入烘乾機中每秒鐘會烘乾a+b滴水。

一秒鐘不可以拆開,問曬乾所有的衣服至少要多少時間?

思路:二分答案判斷可行性。

1 #include2 #include3 inline int

getint()

10const

int n=500000;11

intw[n],n,a,b;

12 inline bool check(const

int &m)

17return tmp<=m;18}

19int

main()

24int l=0,r=n;

25while(l33 printf("

%d\n

",r);

34return0;

35 }

LUOGU P1843 奶牛曬衣服

4 奶牛曬衣服 方法一 利用貪心的思想,每次烘乾最濕的那個衣服,考慮到資料是 50 萬,可以用堆維護一下,複雜度是 o nlogn 方法二 根據天數的單調性,可以二分答案,題目相當於多了乙個已知條件,判斷 mid 天是否能夠全部烘乾。複雜度是 nlog 2n 貪心 a 貪心題,每次把烘乾機用給最溼的...

luogu P1843 奶牛曬衣服

模擬t1,貪心 排序或者二分都行 貪心策略很好想,顯然每次曬耗時最久的衣服最優,問題是要在每次曬完後都再次找到耗時最久的衣服,不能每次都sort,所以單調佇列或者大根堆 二分也不難,直接二分時間,篩一遍衣服統計需要烘乾的時間然後判斷是否滿足就行 模擬的時候敲了貪心 排序,所以這裡放二分的 滑稽 個人...

題解 P1843 奶牛曬衣服

先奉上 本人的手打大根堆。標頭檔案需要 也可以不要,把建構函式刪了就是 struct heap 建構函式 inline void insert const int key inline void maintain const int increment inline int get return h...