poj 3104 二分想法

2021-07-02 11:37:18 字數 810 閱讀 9160

給你n個數表示含水量,給你乙個k表示每分鐘洗衣機能脫水k滴     每分鐘沒有在洗衣機的衣服自動脫水一滴,求把全部水託幹最小時間,怎麼都沒想到居然是二分;==!!

好吧,二分列舉最小時間mid,然後求實際所需時間再 經行判斷,   如果列舉時間為mid,對每件衣服num【i】 如果num【i】小於mid   很顯然直接自然幹最好  而對於num【i】大於mid所用時間為t,設自然幹時間為x1  用洗衣機的時間為x2,  很顯然   x1+x2小於等於mid   x2*k+x1小於等於num【i】  可以求出t小於等於(num【i】-mid)/(k-1)   這裡要注意應為衣服一定要全乾  **所以存在乙個取整的操作**    把所有t加起來與mid判斷就ok了

#include

#include

#include

#include

using

namespace std;

__int64 num[

100010

];int

max(

int a,

int b)

intmain

()scanf

("%d"

,&k);

if(k==1)

printf

("%i64d\n"

,right);

else

if(sum<=mid)

else left=mid+1;}

printf

("%i64d\n"

,ans);}}

return0;

}

poj 3104 二分答案

題意 n件濕度為num的衣服,每秒鐘自己可以蒸發掉1個濕度。然而如果使用了暖爐,每秒可以燒掉k個濕度,但不計算蒸發了。現在問這麼多的衣服,怎麼燒事件最短。解析 二分答案咯。include include include include include include include include ...

poj3104(二分判斷可行性)

translation 要使得一排衣服晾乾,自然風乾每分鐘蒸發1單位的水分。用烘乾機的話每分鐘蒸發k單位的水分。求把所有衣物晾乾的話至少需要多長時間?solution 二分查詢最小可行解 首先二分列舉最短的時間mid。然後是判斷該時間是否可行。可以發現對於水分單位量小於mid的衣服。只需要待其自然風...

poj 3104 二分法求最小值

題意 有n件衣服,每件含水量為 知道用二分,關鍵就是怎麼judge卡了,判斷需要x時間所有衣服幹,時間短的直接晾乾 時間長於minite的 烘乾 晾乾,烘乾時間t t k x t a t a x k 1 最後總的烘乾時間要小於x include include includeusing namesp...