• 题意:有\(n\)件衣服,每件衣服都有\(a_{i}\)滴水,所有衣服每分钟都能自然烘干\(1\)滴水,或者用烘干机,每分钟可以烘干\(k\)滴水,问最快多少分钟可以使所有衣服都烘干.

  • 题解:这题和之前的那个拔苗助长感觉一样啊....都是二分答案.

    ​ 先把\(a\)排个序,然后左区间\(l=1\),右区间\(r=a[n-1]\),因为答案肯定是单调的,大的满足,小的一定也满足,所以每次满足情况时更新右区间,具体的,每件衣服都能自然烘干\(mid\)滴水,然后枚举所有衣服,若不能自然烘干\((a_{i}-mid>0)\),那么就要用烘干机,如果使用烘干机的时间大于\(mid\),那么肯定不满足情况.

  • 代码:

    class Solution {
    public:
    /**
    * 计算最少要多少时间可以把所有的衣服全烘干
    * @param n int整型 n件衣服
    * @param a int整型vector n件衣服所含水量数组
    * @param k int整型 烘干机1分钟可以烘干的水量
    * @return int整型
    */
    int solve(int n, vector<int>& a, int k) {
    // write code here
    sort(a.begin(),a.end());
    int l=1,r=a[n-1];
    while(l<r){ //向左二分
    int mid=(l+r)>>1;
    int tmp=mid;
    for(int i=0;i<n;++i){
    if(a[i]-mid>0){
    tmp-=(a[i]-mid-1)/(k-1)+1; //上取整
    }
    if(tmp<0) break; //优化
    }
    if(tmp>=0){
    r=mid; //更新右区间
    }
    else{
    l=mid+1;
    }
    }
    return r;
    }
    };

最新文章

  1. 安装vsphere5.1
  2. Appium客户端
  3. .NET指定程序集的位置
  4. MySQL体系结构以及各种文件类型学习
  5. 【Android UI设计与开发】6.底部菜单栏(三)使用Fragment+PopupWindow仿QQ空间最新版底部菜单栏
  6. Typescript的面向对象
  7. BestCoder Round #76 解题报告
  8. CentOS 6.4搭建zabbix
  9. 第一次用IIS发布网站时遇到的两个问题
  10. shell脚本练习(随机取名)
  11. Linq skip skipwhile take takewhile
  12. HDU 5455 Fang Fang 水题,但题意描述有问题
  13. 29. leetcode 167. Two Sum II - Input array is sorted
  14. 接口测试 mock server 工具moco学习笔记
  15. leetcode 704. Binary Search 、35. Search Insert Position 、278. First Bad Version
  16. Hide-Music-Player 一个完整的音乐播放器《IT蓝豹》
  17. dotTrace 每行执行时间和执行次数
  18. nginx配置,php安装
  19. 实施CMMI3的体会
  20. c# 计算两个时间的时间差

热门文章

  1. python列表字符串集合常用方法
  2. 【Linux】make编译的小技巧
  3. 【MySQL】centos6中/etc/init.d/下没有mysqld启动文件,怎么办
  4. 映泰主板H100系列安装win7的各种坑
  5. 跨平台导PDF,结合wkhtmltopdf很顺手
  6. EL&amp;Filter&amp;Listener:EL表达式和JSTL,Servlet规范中的过滤器,Servlet规范中的监听器,观察着设计模式,监听器的使用,综合案例学生管理系统
  7. 【IDEA】Lombok--是否值得我们去使用
  8. Ajax编程基础
  9. Flutter--Flutter开发环境搭建
  10. Salt (cryptography)