Drying POJ - 3104 二分 最优
题意:有N件湿的衣服,一台烘干机。每件衣服有一个湿度值。每秒会减一,如果用烘干机,每秒会减k。问最少多久可以晒完。
题解:二分。首先时间越长越容易晒完。
其次判定函数可以这样给出:对于答案 X,每一个湿度大于X的衣服都要被烘干。所以可以直接统计烘干机被用的总时间,如果其大于X则返回0.
注意向下取整细节。
- #define _CRT_SECURE_NO_WARNINGS
- #include<cstring>
- #include<cctype>
- #include<cstdlib>
- #include<cmath>
- #include<cstdio>
- #include<string>
- #include<stack>
- #include<ctime>
- #include<list>
- #include<set>
- #include<map>
- #include<queue>
- #include<vector>
- #include<sstream>
- #include<iostream>
- #include<functional>
- #include<algorithm>
- #include<memory.h>
- //#define INF 0x3f3f3f3f
- #define eps 1e-6
- #define pi acos(-1.0)
- #define e exp(1.0)
- #define rep(i,t,n) for(int i =(t);i<=(n);++i)
- #define per(i,n,t) for(int i =(n);i>=(t);--i)
- #define mp make_pair
- #define pb push_back
- #define mmm(a,b) memset(a,b,sizeof(a))
- //std::ios::sync_with_stdio(false);
- using namespace std;
- typedef long long ll;
- typedef unsigned long long ull;
- void smain();
- #define ONLINE_JUDGE
- int main() {
- ios::sync_with_stdio(false);
- #ifndef ONLINE_JUDGE
- freopen("in.txt", "r", stdin);
- freopen("out.txt", "w", stdout);
- long _begin_time = clock();
- #endif
- smain();
- #ifndef ONLINE_JUDGE
- long _end_time = clock();
- printf("time = %ld ms.", _end_time - _begin_time);
- #endif
- return ;
- }
- const int maxn = 1e5 + ;
- int a[maxn];
- int n, k;
- int l, r, mid;
- bool check(int x) {
- int now = ;//time for radiator
- rep(i, , n) {
- if (a[i] > x) {
- now += (a[i] - x - ) / (k - ) + ;//k-1&&ceiling/consider integer
- if (now > x)return ;
- }
- }
- return ;
- }
- void Run() {
- l = , r = ;
- r = *max_element(a + , a + + n);
- if (k == ) { cout << r<<endl; }
- else {
- while (l <= r) {
- mid = l + r >>;
- if (check(mid))r = mid - ;
- else l = mid + ;
- }
- cout << l << endl;
- }
- }
- void smain() {
- cin >> n;
- rep(i, , n)cin >> a[i];
- cin >> k;
- Run();
- }
Drying POJ - 3104 二分 最优的更多相关文章
- poj 3104 二分
Drying Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 12568 Accepted: 3243 Descripti ...
- Drying POJ - 3104
It is very hard to wash and especially to dry clothes in winter. But Jane is a very smart girl. She ...
- Divide and conquer:Drying(POJ 3104)
烘干衣服 题目大意:主人公有一个烘干机,但是一次只能烘干一件衣服,每分钟失水k个单位的水量,自然烘干每分钟失水1个单位的水量(在烘干机不算自然烘干的那一个单位的水量),问你最少需要多长时间烘干衣服? ...
- POJ 3104 Drying [二分 有坑点 好题]
传送门 表示又是神题一道 Drying Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9327 Accepted: 23 ...
- POJ - 2018 二分+单调子段和
依然是学习分析方法的一道题 求一个长度为n的序列中的一个平均值最大且长度不小于L的子段,输出最大平均值 最值问题可二分,从而转变为判定性问题:是否存在长度大于等于L且平均值大于等于mid的字段和 每个 ...
- POJ 3104 Drying(二分答案)
题目链接:http://poj.org/problem?id=3104 ...
- POJ 3104 Drying 二分
http://poj.org/problem?id=3104 题目大意: 有n件衣服,每件有ai的水,自然风干每分钟少1,而烘干每分钟少k.求所有弄干的最短时间. 思路: 注意烘干时候没有自然风干. ...
- POJ 3104 Drying(二分答案)
[题目链接] http://poj.org/problem?id=3104 [题目大意] 给出n件需要干燥的衣服,烘干机能够每秒干燥k水分, 不在烘干的衣服本身每秒能干燥1水分 求出最少需要干燥的时间 ...
- poj 3104 Drying(二分查找)
题目链接:http://poj.org/problem?id=3104 Drying Time Limit: 2000MS Memory Limit: 65536K Total Submissio ...
随机推荐
- 【Android】解析Android的路径
目录结构: contents structure [+] 内部路径 外部路径 Assets目录 Android中的路径主要分为内部路径和外部路径. 一.内部路径 常见的内部存储路径有: File f1 ...
- Spring开发工具Spring Tools Suite(STS)
The Spring Tool Suite is an Eclipse-based development environment that is customized for developing ...
- HTML Entity 字符实体(字符转义)
目录 1. HTML Entity 2. 字符与Entity Name的互相转换 3. 字符与Entity Number的互相转换 1. HTML Entity 1.1 介绍 在编写HTML页面时,需 ...
- [svc]tomcat配置文件详解-最简单的基于mvn的war包
tomcat安全管理规范 java&tomcat配置参考(多看看这位大牛的博客,写的很好) Tomcat系列之Java技术详解 http://blog.51cto.com/freeloda/1 ...
- vue项目使用webpack loader把px转换为rem
下载lib-flexible https://github.com/amfe/lib-flexible npm i lib-flexible --save 在main.js中引入lib-flexibl ...
- ceph crush 之 crush_do_rule
crush_do_rule中,用了一个scratch空间来完成item的搜索. scratch空间总共有3个max_result这么大,并且按照max_result长度划分为三个部分(下图中的a. ...
- [Big Data - Kafka] Kafka剖析(一):Kafka背景及架构介绍
Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用.目前越来越多的开源分布式处理系统如Cloudera.Apache Storm.Spa ...
- 【iCore4 双核心板_ARM】例程三:EXTI中断输入实验——读取ARM按键状态
实验原理: 按键的一端与STM32的GPIO(PB9)相连,且PB9外接一个1k大小的限流上接电阻. 初始化时把PB9设置成输入模式,当按键弹起时,PB9由于上拉电阻的作用呈高电平(3.3V): 当按 ...
- ubuntu下使用golang、qml与ubuntu sdk开发桌面应用 (简单示例)
找了很长时间go的gui库,试了gtk,准备试qt的时候发现了这个qml库,试了下很好用. ##准备工作 **1.Go 1.2RC1** go的版本应该不能低于这个,我是在1.2RC发布当天升级后发现 ...
- Java知多少(84)图形界面之布局设计
在界面设计中,一个容器要放置许多组件,为了美观,为组件安排在容器中的位置,这就是布局设计.java.awt中定义了多种布局类,每种布局类对应一种布局的策略.常用的有以下布局类: FlowLayout, ...