POJ 3104 Drying 二分 貪心

2021-07-02 12:28:22 字數 856 閱讀 6942

題目大意:有n件溼的衣服,每件衣服都有相應的濕度,每分鐘每件衣服的濕度減1(除了在烘乾機裡的衣服),現在有乙個烘乾機,烘乾機一分鐘可以讓一件衣服的濕度降低k,問至少要花多少分鐘才能使每件衣服的濕度為0

解題思路:貪心的話,每分鐘都要使用到烘乾機。

列舉時間,如果濕度小於等於時間的話,就不用考慮了,在列舉時間內肯定會幹的

如果濕度大於列舉時間的話,就要考慮一下了,該衣服要在給定時間內濕度變為零的話就要滿足該式子,設已經過了cnt分鐘了,當前這件衣服的濕度為num[i],列舉的時間為mid,那麼

(num[i] - cnt) - n * k <= mid - cnt - n

也就是n =(num[i] - cnt) / (k - 1),如果有餘數的話,時間還要加一

#include

#include

#include

using

namespace

std;

#define maxn 100010

int num[maxn], n, k, max;

bool cmp(const

int a, const

int b)

bool judge(int mid)

return cnt <= mid;

}int solve()

return r;

}int main()

sort(num, num + n, cmp);

scanf("%d", &k);

if(k <= 1)

printf("%d\n", solve());

}return

0;}

POJ3104 Drying(二分答案)

題目大意 有n件衣服,每件衣服含a滴水 有一台每分鐘可以烘乾k滴水的機器,每次可以讓一件衣服使用 衣服每分鐘蒸發一滴水,輸出烘乾所有的衣服的最少時間 二分列舉最少時間mid 遍歷衣服,若某件衣服含水量大於mid 算出烘乾所用總時間,公式為 a i mid k 1 再判斷時間與mid的大小 注意k 1...

POj 3104 Drying 二分 貪心

題目大意 有n件溼的衣服,每件衣服都有相應的濕度,每分鐘每件衣服的濕度減1 除了在烘乾機裡的衣服 現在有乙個烘乾機,烘乾機一分鐘可以讓一件衣服的濕度降低k,問至少要花多少分鐘才能使每件衣服的濕度為0 解題思路 貪心的話,每分鐘都要使用到烘乾機。列舉時間,如果濕度小於等於時間的話,就不用考慮了,在列舉...

POJ 3104 Drying 二分求最小值

開始一看題目的時候,就想著二分時間,然後看可不可行。然後在寫ok判斷可不可行的時候,莫名的感覺不用二分 include include include include include using namespace std const int maxn 100005 int n,k int a ma...