給你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...