POJ 3104 Drying 二分求最小值

2021-07-30 21:50:24 字數 1193 閱讀 7327

開始一看題目的時候,就想著二分時間,然後看可不可行。然後在寫ok判斷可不可行的時候,莫名的感覺不用二分

#include 

#include

#include

#include

#include

using

namespace

std;

const

int maxn = 100005;

int n,k;

int a[maxn];

bool cmp(int a1,int b2)

void ok()

temp-=k;

time++;

}if(temp>0) time++;

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

}int main()

然後wa到想哭。之後發現出了問題,1.題目中說了一分鐘內只能放一件衣服進烘乾機,,我這裡想的是一分鐘內乾了後,拿出來再放別的。(額。。更節約。。)。2.改好了之後,先將水多的放進烘乾機,然後把時間記下來,後面如果有自然幹的時間大於這個時間的話,就放進烘乾機,更新時間。但是這個又有點問題,水多的有可能一部分時間在烘乾機裡,一部分在外面自然烘乾時間更短。

然後還是老實的二分吧

//注意轉long long ~~~~

#include 

#include

#include

#include

#include

using

namespace

std;

const

int maxn = 100005;

long

long n,k;

long

long a[maxn];

bool cmp(long

long a1,long

long b1)

int ok(long

long time)

}if(cnt>time) return

1; else

return0;}

int main()

scanf("%i64d",&k);

sort(a,a+n,cmp);

if(k==1) cout

<0]cout

0;}

POJ 3104 Drying 二分 貪心

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

POJ3104 Drying(二分答案)

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

POj 3104 Drying 二分 貪心

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