題目描述
牛牛有n件帶水的衣服,乾燥衣服有兩種方式。 一、是用烘乾機,可以每分鐘烤乾衣服的k滴水。 二、是自然烘乾,每分鐘衣服會自然烘乾1滴水。 烘乾機比較小,每次只能放進一件衣服。 注意,使用烘乾機的時候,其他衣服仍然可以保持自然烘乾狀態,現在牛牛想知道最少要多少時間可以把衣服全烘乾。
題目鏈結
思路:
二分查詢答案,對每一次二分出的時間進行判斷是否可以晾乾所有衣服。
判斷x時間內是否可以晾乾衣服:
如果第i件衣服的雨水小於或等於x 則直接自然烘乾
對於第i件衣服的雨水大於x,則需要求出在x時間內所需的最少烘乾時間。
假設這件衣服直接自然烘乾,則還剩a[i]-x滴雨水
所有必須要用烘乾機,而烘乾機比自然烘乾多烘乾k-1滴水, 則在x時間內該件衣服必須要用
(a[i]-x)/(k-1)(向上取整)分鐘用烘乾機,其它時間自然烘乾
#include
#define ll long long
using
namespace std;
int a[
100001];
int n,k;
interfen
(ll sj)
}return1;
}int
main()
sort
(a,a+n)
; ll right=a[n-1]
;//最多用的時間
ll left=1;
//最少用的時間
while
(leftelse
} cout/輸出right也行
}
牛牛晾衣服
牛牛有n件帶水的衣服,乾燥衣服有兩種方式。一 是用烘乾機,可以每分鐘烤乾衣服的k滴水。二 是自然烘乾,每分鐘衣服會自然烘乾1滴水。烘乾機比較小,每次只能放進一件衣服。注意,使用烘乾機的時候,其他衣服仍然可以保持自然烘乾狀態,現在牛牛想知道最少要多少時間可以把衣服全烘乾。所以每件衣服 只能烘乾一秒 然...
C 牛牛晾衣服
牛牛有n件帶水的衣服,乾燥衣服有兩種方式。一 是用烘乾機,可以每分鐘烤乾衣服的k滴水。二 是自然烘乾,每分鐘衣服會自然烘乾1滴水。烘乾機比較小,每次只能放進一件衣服。注意,使用烘乾機的時候,其他衣服仍然可以保持自然烘乾狀態,現在牛牛想知道最少要多少時間可以把衣服全烘乾。輸入 3,2,3,9 5輸出 ...
牛牛涼衣服
牛牛有n件帶水的衣服,乾燥衣服有兩種方式。一 是用烘乾機,可以每分鐘烤乾衣服的k滴水。二 是自然烘乾,每分鐘衣服會自然烘乾1滴水。烘乾機比較小,每次只能放進一件衣服。注意,使用烘乾機的時候,其他衣服仍然可以保持自然烘乾狀態,現在牛牛想知道最少要多少時間可以把衣服全烘乾。本來想的貪心,如下,class...