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,一经查实,立即删除!

相关文章

c#string倒数第二位插入字符_c#string倒数第二位插入字符_C#利用String类的IndexOf、LastIndexOf、...

一、String.IndexOfString.IndexOf 方法 (Char, Int32, Int32)报告指定字符在此实例中的第一个匹配项的索引(从0开始)。搜索从指定字符位置开始&#xff0c;并检查指定数量的字符位置。String.IndexOf(value, startIndex, count)参数value&#xff1a;要查找的 Unicode 字符。s…

使用所学的javaWeb知识,实现一个小型的记账管理系统

导读:控制过度消费通过记账,你会很清楚地知道自己的钱都用来做了什么,关于每分钱的去处心中都明明白白, 哪些是必要的开销,哪些是非理性的、应该避免的花费,分别占有多大的比例。有专家统计,个人 或者家庭的年节余比例要达到收人的40%才是正常的。参照这样的比例,对你找…

java小细节_为什么我喜欢Java的细节

java小细节他们说&#xff0c;Java太冗长了。 您可以找到Hello World程序的比较&#xff0c;这些程序在ruby中使用2行&#xff0c;在Java中使用10行&#xff0c;而要读取文件&#xff0c;您需要使用Java 20行和php中1行。 尽管示例经常被夸大&#xff08;例如&#xff0c;计算导…

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框架实现一个简单的任务调度系统

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

你在乎的--世界在乎的

惊闻苍老师在某地做活动&#xff0c;距离公司不远&#xff0c;便蠢蠢欲动&#xff0c;招呼几个小伙伴一同前往。老师果然是全民偶像&#xff0c;人生导师&#xff0c;人气火爆&#xff0c;现场是人山人海&#xff0c;根本没有立足之地&#xff0c;后来听说&#xff0c;由于人太…

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

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

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

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

java网络爬虫技术也可以代替Python实现网络新闻分析系统

导读:自从大数据的概念被提出后,互联网数据成为了越来越多的科研单位进行数据挖掘的对象。网络新闻数据占据了互联网数据的半壁江山,相比传统媒体,其具有传播迅速、曝光时间短、含有网民舆论等相关特征,其蕴含的价值也愈来愈大。 利用相关网络爬虫技术与算法,实现网络媒体…

centos 服务器装与python34源码安装

http://www.111cn.net/sys/CentOS/63645.htm 1、CentOS安装Python的依赖包&#xff08;不安装依赖包&#xff0c;会导致python安装不完整&#xff09; yum groupinstall "Development tools"yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-…

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

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

Java 日期格式

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

java获取默认用户目录_Java获取当前路径

1、利用System.getProperty()函数获取当前路径&#xff1a;System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径2、使用File提供的函数获取当前路径&#xff1a;File directory new File("");//设定为当前文件夹try{System.o…

zk框架_ZK Web框架思想

zk框架我曾多次被要求提出一些有关ZK的意见。 因此&#xff0c;根据我4年作为ZK用户的经验&#xff0c;有一些想法&#xff1a; 总体开发人员经验&#xff0c;社区和文档 “就是这样” ZK提供的大多数东西都能很好地工作&#xff0c;并且如果您以前开发过任何桌面Java应用程序…

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

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

写论文的思考

以下引自知乎的回答 需要的能力 1.资料检索的能力 2.资料筛选的能力 3.期刊论文的阅读能力&#xff0c;期刊论文和大学部的课本截然不同。大学部的课本是寻次渐进地从最基本的知识背景逐步交代出整套有系统的知识&#xff0c;中间没有任何的跳跃&#xff0c;只要你逐页读下去…

java mongo subtract_春数据MongoDB的聚合框架,例外

组访问计算值&#xff0c;我有旅行的集合&#xff0c;每行有一个的startDateTime和completionDateTime财产。春数据MongoDB的聚合框架&#xff0c;例外我试图使用聚合框架来找到用户的出行的平均持续时间。我的聚集看起来非常简单&#xff0c;但和它抛出一个异常。有以下3个步骤…

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

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