Divide and conquer:Drying(POJ 3104)

                 

                 烘干衣服

  题目大意:主人公有一个烘干机,但是一次只能烘干一件衣服,每分钟失水k个单位的水量,自然烘干每分钟失水1个单位的水量(在烘干机不算自然烘干的那一个单位的水量),问你最少需要多长时间烘干衣服?

  简单来说题目就是要:时间允许的情况下让时间最小,时间可以无限大,这题就是“最小化最大值”,二分法

  

 1 #include <iostream>
 2 #include <functional>
 3 #include <algorithm>
 4 
 5 using namespace std;
 6 
 7 static int clothes[100005];
 8 
 9 void Search(const int, const int);
10 bool judge(const long long, const int, const int);
11 int fcmop(const void *a, const void *b)
12 {
13     return *(int *)a - *(int *)b;
14 }
15 
16 int main(void)//在时间允许的情况下让值最小(最小化最大值)
17 {
18     int sum_clothes, re;
19 
20     while (~scanf("%d", &sum_clothes))
21     {
22         for (int i = 0; i < sum_clothes; i++)
23             scanf("%d", &clothes[i]);
24         scanf("%d", &re);
25         qsort(clothes, sum_clothes, sizeof(int), fcmop);
26         if (re == 1)
27             printf("%d\n", clothes[sum_clothes - 1]);//注意一定不要出现0的情况
28         else
29             Search(sum_clothes, re);
30     }
31     return 0; 
32 }
33 
34 void Search(const int sum_clothes, const int re)
35 {
36     long long lb = 0, rb = (long long)10e+9 + 1, mid;
37 
38     while (rb - lb > 1)
39     {
40         mid = (rb + lb) / 2;
41         if (judge(mid, sum_clothes, re)) rb = mid;
42         else lb = mid;
43     }
44     printf("%lld\n", rb);
45 }
46 
47 bool judge(const long long times, const int sum_clothes, const int re)
48 {
49     long long use_time_now, use_sum = 0;
50     int i;
51 
52     for (i = 0; i < sum_clothes && clothes[i] <= times; i++);
53 
54     for (; i < sum_clothes; i++)
55     {
56         use_time_now = (clothes[i] - times + re - 1 - 1) / (re - 1);//向上取整,要先-1
57         use_sum += use_time_now;
58         if (use_sum > times)
59             return false;
60     }
61     return true;
62 }

 

转载于:https://www.cnblogs.com/Philip-Tell-Truth/p/5130951.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/357761.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 的 AccessController.doPrivileged使用

AccessController.doPrivileged意思是这个是特别的,不用做权限检查. 在什么地方会用到呢:加入1.jar中有类可以读取一个文件,现在我们要使用1.jar去做这个事情.但是我们的类本生是没有权限去读取那个文件的,一般情况下就是眼睁睁的看着了. 但是jiava提供了doPrivileged.在1.ja…

cordova 实现网页缓存_如何解决ionic,cordova混合开发的app缓存大的问题

如何解决ionic&#xff0c;cordova混合开发的app缓存大的问题关注:143 答案:2 mip版解决时间 2021-02-05 06:24提问者旧梦已过期2021-02-04 16:54如何解决ionic&#xff0c;cordova混合开发的app缓存大的问题最佳答案二级知识专家臸釪樶初2021-02-04 17:10可以试试sd卡挂在&a…

当年课设期末大作业,班主任让我们做一个新闻发布管理系统

导读:基于web的新闻发布及管理系统的设计与实现,是动态网页和数据库结合,通过事件来处理新闻。我们对最新信息的更新和发布需要比较及时,而动态交互网页能实现这些功能,新闻发布及管理系统就是一个能够在网上实现新闻的发布及管理,让人们更好的获取更新的新闻资讯。 随着电…

疫情期间,在家使用java的SSH框架实现一个简单的任务调度系统

导读:随着科学技术的飞速发展和各行各业的分工愈发明细化,对于改革传统的人工任务调度方式的呼声越来越大。得益于快速发展的计算机技术,我们看到了改革的方向。本系统是针对企业或者事业单位甚至一个小团队的任务调度而设计的,目的是改变传统的调度方式,通过计算机来计算…

css3优惠卷上方锯齿_css3怎么实现锯齿边框?

白板的微信你这样的最好还是切图做用css3也达不到一毛一样的效果&#xff0c;如果你很想要尝试一下的话可以试试&#xff0c;不过边缘不是顺滑的感觉

改善Hibernate应用程序性能的7种方法

Hibernate是将Java Web应用程序与SQL数据库集成的好工具&#xff0c;但是当应用程序的响应时间开始显着增加时&#xff0c;我们应该怎么做&#xff1f; 当我们怀疑应用程序是否会随着客户群的增长而扩展时&#xff0c;我们该怎么办&#xff1f; 在花大价钱托管或重写代码之前&…

CSDN:2020博客之星年度总评选大赛,趣味总结!

导读&#xff1a;从2020年正式写博客&#xff0c;第一次参加活动&#xff0c;竟然落选了&#xff0c;在此记录一下这个过程吧&#xff0c;方便找帖子链接&#xff0c;毕竟靠着本人的影响力还是能捞点饭票的&#xff0c;哈哈。 2020博客之星年度总评选活动地址&#xff1a;https…

Java 日期格式

转载于:https://www.cnblogs.com/bylion/p/5141022.html

一文教你用java实现出租车计价器设计(附下载源码)

导读&#xff1a;在我国&#xff0c;出租车行业是八十年代初兴起的一项新兴行业&#xff0c;随着出租车的产生&#xff0c;计价器也就应运而生。但当时在全国没有一家企业能够生产&#xff0c;因而那个时期的计价器是由台湾引进。台湾是计价器的主要生产场地&#xff0c;目前全…

一键转发抢红包源码及搭建教程

导读:一键转发抢红包搭建教程如下:源码请在资源模块下载。 搭建教程 第一步注册bmob建立一个项目 项目包括这些表单(file表可以不建立) (应用ID在后台项目设置里面) 表DaSha这样建立 表Sha这样建立 找zi()方法第一步

android 开发

初学者学习 Android 开发&#xff0c;有什么好网站推荐&#xff1f; 前段日子一直在看安卓巴士这个网站&#xff0c;但网站突然进行改版&#xff0c;很多内容都找不到了&#xff0c;一下子怅然若失起来1 条评论 分享按投票排序按时间排序50 个回答 yava&#xff0c;半瓶水fei …

ztree java 增删改_Ztree实现增删改查

1.和另一篇文章--[TreeGrid 实现增删改查]前面的内容一致&#xff0c;只需要创建一个html页面&#xff0c;命名为ztree-01.html&#xff0c;粘贴如下网址的代码进入ztree-01.html。访问http://www.treejs.cn/v3/faq.php#_206复制这些代码html> ZTREE DEMO TITLE>HEAD>…

Android Studio导入项目非常慢的解决办法

问题 Android Studio目前已经更新到2.0 Preview 6了&#xff0c;作为Google大力推崇的开发工具&#xff0c;相对于Eclipse ADT有着不可比拟的优势。然而在实际使用时&#xff0c;依然有不少不爽的地方。Android Studio原生支持使用Gradle来构建项目本是个不错的想法&#xff0c…

DBA 技能图谱——数据库管理员不在迷茫

导读:DBA一般指数据库管理员。数据库管理员(Database Administrator,简称DBA),是从事管理和维护数据库管理系统(DBMS)的相关工作人员的统称,属于运维工程师的一个分支,主要负责业务数据库从设计、测试到部署交付的全生命周期管理。 目录 DBA 技能图谱 下载地址 DBA 技能…

java的六大_java程序员必备的六大工具!

原标题&#xff1a;java程序员必备的六大工具&#xff01;Java程序员都会有套工具来应对工作上的挑战。多年来&#xff0c;Java 程序员使用软件来完成他们的工作。有很多工具对他们是有用的&#xff0c;不过对于初入行的人员来说&#xff0c;寻找合适的工具是困难的&#xff0c…

H5技能图谱——适合各阶段前端程序员的学习地图

导读&#xff1a;学过web前端的都知道&#xff0c;web前端开发主要包括结构、行为和表现。那么要做好web前端&#xff0c;必须知道哪些技能呢?今天孙叫兽给大家介绍web前端的学习地图。 目录 H5技能图谱 下载地址 H5技能图谱 是不是很简单呢&#xff0c;拿赶紧收藏起来学习…

java写exe程序实例_2012软考软件设计师辅导:利用JAVA执行本地EXE文件

曾经为了这样一个需求找了很多资料&#xff0c;今天终于学习到了&#xff01;如何利用java执行exe文件&#xff1f;使用java类Runtime&#xff0c;每个Java应用程序都有一个Runtime类实例&#xff0c;使应用程序能够与其运行的环境相连接。可以通过getRuntime方法获取当前运行时…

使用Spring JUnit规则进行参数化集成测试

Spring 4.2附带了全新的JUnit规则&#xff1a; SpringClassRule和SpringMethodRule 。 使用JUnit规则的主要优点是让开发人员摆脱SpringJUnit4ClassRunner并在Spring集成测试中利用不同的JUnit运行器。 我认为Spring JUnit Rules的最大机会是易于创建参数化的集成测试。 要测试…

IOS 开发技能图谱——ios 开发工程师必知必会要点

导读&#xff1a;iOS 开发工程师技能图谱&#xff0c;包含开发基础、开发进阶、设计模式、开源项目、APP上传与审核、第三方服务等。 IOS 开发工程师技能图谱 下载地址 点我下载高清iOS 开发工程师技能图谱 关注公众号 电商程序员&#xff0c;回复 iOS 开发工程师技能图谱&am…

网络数据包收发流程(四):协议栈之packet_type

进入函数netif_receive_skb()后&#xff0c;skb正式开始协议栈之旅。先上图&#xff0c;协议栈大致过程如下所示&#xff1a;跟OSI七层模型不同&#xff0c;linux根据包结构对网络进行分层。比如&#xff0c;arp头和ip头都是紧跟在以太网头后面的&#xff0c;所以在linux协议栈…