zoukankan      html  css  js  c++  java
  • Drying POJ

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<algorithm>
    #include<cmath>
    const int maxn = 1e5+10;
    using namespace std;
    long long k;
    int n;
    long long a[maxn];
    long long ans=0;
    long long maxt=0;
    bool check(int mid)
    {
    	long long hott=0;
    	for(int i=0; i<n; i++)
    	{
    		//如果小于等于mid,那么直接晾干就行,不占用烘干机 
    		//如果大于 这个时候就用烘干机处理多出来的时间 
    		if(a[i]>mid)
    			hott+=(long long)ceil((double)(a[i]-mid*1.0)/(k-1));
    		if(hott>mid)
    			return false;
    	}
    	return true;
    }
    void solve()
    {
    	int l=1,r=a[n-1];
    	while(l<r)
    	{
    		int mid=(l+r)/2;
    		if(check(mid))
    			r=mid;
    		else  
    			l=mid+1;
    	}
    	printf("%d
    ",l);
    }
    int main()
    {
    	scanf("%d",&n);
    	for(int i=0; i<n; i++)
    		scanf("%lld",&a[i]);
    	scanf("%d",&k);
    	sort(a,a+n);
    	if(k==1)
    	{
    		printf("%lld
    ",a[n-1]);
    		return 0;
    	}
    	solve();
    	return 0;
    }
    
  • 相关阅读:
    二叉搜索树
    splay模板
    树状数组模板
    K尾相等数
    寻找最大数
    布线问题(最小生成树)
    开心的小明
    独木舟上的旅行(二)
    The Triangle(记忆化搜索)
    喷水装置(二)
  • 原文地址:https://www.cnblogs.com/QingyuYYYYY/p/12840179.html
Copyright © 2011-2022 走看看