poj 3104 二分法求最小值

2021-09-12 17:49:05 字數 677 閱讀 8932

題意:有n件衣服,每件含水量為

知道用二分,關鍵就是怎麼judge卡了,判斷需要x時間所有衣服幹,    時間短的直接晾乾   時間長於minite的 烘乾+晾乾,烘乾時間t   t*k+(x-t)>a  t>(a-x)/(k-1)

最後總的烘乾時間要小於x

#include#include#includeusing namespace std;

typedef long long ll;

const int n=1e5+10;

ll a[n];

ll k;

int n;

//cin 會超時

bool judge(ll x) //每次judge時間複雜度和

if(sum<=x) return true; //時間還可以更短一些

else return false;

}int main()

scanf("%lld",&k);

if(k==1)

sort(a+1,a+1+n);

ll l=0,r=1e9+10; //最長時間是水最多的衣服

ll mid;

while(l<=r)

printf("%lld\n",l);

}return 0;

}

poj 3258 二分法求最小值最大

這道題和poj3273 剛好是兩個相反的例子,乙個是求最大值最小,這個是求最小值最大。就是把一串數分成若干組,使得 組和 該組所有數的和 最大的哪一組的值最大或者最小。應用二分的思想,在距離最小值和總和之間二分查詢。如下 include include include include define ...

POJ 3104 Drying 二分求最小值

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

poj 3104 二分想法

給你n個數表示含水量,給你乙個k表示每分鐘洗衣機能脫水k滴 每分鐘沒有在洗衣機的衣服自動脫水一滴,求把全部水託幹最小時間,怎麼都沒想到居然是二分 好吧,二分列舉最小時間mid,然後求實際所需時間再 經行判斷,如果列舉時間為mid,對每件衣服num i 如果num i 小於mid 很顯然直接自然幹最好...