zoukankan      html  css  js  c++  java
  • 洛谷 P1873 砍树

    砍树

    二分答案,难度较低。

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    //Mystery_Sky
    //
    #define M 10000100
    #define ll long long 
    #define INF 0x7f7f7f7f
    ll l, r, mid;
    int n, m, a[M];
    inline bool check(ll ans)
    {
    	ll sum = 0;
    	for(int i = 1; i <= n; i++) {
    		if(a[i] > ans)	sum += (a[i] - ans);
    	}
    	return sum >= m;
    }
    
    int main() {
    	scanf("%d%d", &n, &m);
    	for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
    	l = 0, r = INF;
    	while(l < r) {
    		mid = (l + r + 1) / 2;
    		if(check(mid)) l = mid;
    		else r = mid - 1;
    	}
    	printf("%lld
    ", l);
    	return 0;
    }
    
    唯愿,青春不辜负梦想,未来星辰闪耀
  • 相关阅读:
    组合模式
    迭代器模式
    命令模式
    装饰者模式
    观察者模式
    策略模式
    适配器模式和外观模式
    Servlet
    Java 递归
    Java 反射
  • 原文地址:https://www.cnblogs.com/Benjamin-cpp/p/10877694.html
Copyright © 2011-2022 走看看