洛谷 P4058 [Code+#1]木材 题解
P4058 [Code+#1]木材
题目描述
有 \(n\) 棵树,初始时每棵树的高度为 \(H_i\),第 \(i\) 棵树每月都会长高 \(A_i\)。现在有个木料长度总量为 $ S$ 的订单,客户要求每块木料的长度不能小于 \(L\),而且木料必须是整棵树(即不能为树的一部分)。现在问你最少需要等多少个月才能满足订单。
输入格式
第一行 \(3\) 个用空格隔开的非负整数 \(n,S,L\),表示树的数量、订单总量和单块木料长度限制。
第二行 \(n\) 个用空格隔开的非负整数,依次为 \(H_1,H_2, ... ,H_n\)。
第三行 \(n\) 个用空格隔开的非负整数,依次为 \(A_1,A_2, ... ,A_n\)。
输出格式
输出一行一个整数表示答案。
输入输出样例
输入 #1
3 74 51
2 5 2
2 7 9
输出 #1
7
说明/提示
对于样例,在六个月后,各棵树的高度分别为 \(14,47,56\),此时无法完成订单。
在七个月后,各棵树的高度分别为 \(16,54,65\),此时可以砍下第 \(2\) 和第 \(3\) 棵树完成订单了。
来自 CodePlus 2017 11 月赛,清华大学计算机科学与技术系学生算法与竞赛协会 荣誉出品。
Credit:idea/郑林楷 命题/郑林楷 验题/王聿中
Git Repo:https://git.thusaac.org/publish/CodePlus201711
感谢腾讯公司对此次比赛的支持。
【思路】
二分答案!
二分答案模板题
二分最少需要多少个月
然后去检查
枚举每一个树长k个月之后的长度
如果超出ll那就ans加上
如果最后ans大于等于s那么就返回真
否则返回假
重点是r的赋值
可以比较s和ll的最大值然后赋值上去
没必要自己想一个以为可以AC的数赋值上去
除非你疯狂提交二分出可以AC得数qwq
做完这道题之后发现我真是个憨憨
明明可以赋值r为s和ll的最大值
但是我却非要自己试数
(我还真把自己当电脑了真是个憨憨)
【完整代码】
#include<iostream>
#include<cstdio>
#define int long long
using namespace std;
const int Max = 200005;
int h[Max],a[Max];
int n,s,ll;
bool check(int mid)
{
int ans = 0;
for(register int i = 1;i <= n;++ i)
{
int qwq = h[i] + a[i] * mid;
if(qwq < ll)continue;
ans += qwq;
if(ans >= s)return true;
}
return false;
}
signed main()
{
cin >> n >> s >> ll;
for(register int i = 1;i <= n;++ i)
cin >> h[i];
for(register int i = 1;i <= n;++ i)
cin >> a[i];
int l = 0,r = max(s,ll);
while(l < r)
{
int mid = (r + l) >> 1;
if(check(mid))r = mid;
else l = mid + 1;
}
cout << l << endl;
return 0;
}
洛谷 P4058 [Code+#1]木材 题解的更多相关文章
- [CodePlus 2017 11月赛&洛谷P4058]木材 题解(二分答案)
[CodePlus 2017 11月赛&洛谷P4058]木材 Description 有 n棵树,初始时每棵树的高度为 Hi ,第 i棵树每月都会长高 Ai.现在有个木料长度总量为 S的订单, ...
- 洛谷P1783 海滩防御 分析+题解代码
洛谷P1783 海滩防御 分析+题解代码 题目描述: WLP同学最近迷上了一款网络联机对战游戏(终于知道为毛JOHNKRAM每天刷洛谷效率那么低了),但是他却为了这个游戏很苦恼,因为他在海边的造船厂和 ...
- 洛谷P4047 [JSOI2010]部落划分题解
洛谷P4047 [JSOI2010]部落划分题解 题目描述 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落 ...
- 洛谷P1155 双栈排序题解(图论模型转换+二分图染色+栈)
洛谷P1155 双栈排序题解(图论模型转换+二分图染色+栈) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1311990 原题地址:洛谷P1155 双栈排序 ...
- [洛谷P1823]音乐会的等待 题解(单调栈)
[洛谷P1823]音乐会的等待 Description N个人正在排队进入一个音乐会.人们等得很无聊,于是他们开始转来转去,想在队伍里寻找自己的熟人.队列中任意两个人A和B,如果他们是相邻或他们之间没 ...
- 洛谷10月月赛II题解
[咻咻咻] (https://www.luogu.org/contestnew/show/11616) 令人窒息的洛谷月赛,即将参加NOIp的我竟然只会一道题(也可以说一道也不会),最终145的我只能 ...
- [NOIP提高&洛谷P1024]一元三次方程求解 题解(二分答案)
[NOIP提高&洛谷P1024]一元三次方程求解 Description 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约 ...
- BZOJ2527 & 洛谷3527:[Poi2011]Meteors——题解
+++++++++++++++++++++++++++++++++++++++++++ +本文作者:luyouqi233. + +欢迎访问我的博客:http://www.cnblogs.com/luy ...
- 洛谷 p1516 青蛙的约会 题解
dalao们真是太强了,吊打我无名蒟蒻 我连题解都看不懂,在此篇题解中,我尽量用语言描述,不用公式推导(dalao喜欢看公式的话绕道,这篇题解留给像我一样弱的) 进入正题 如果不会扩展欧里几德的话请先 ...
随机推荐
- 关于Python中的可变对象与不可变对象的区别(转)
转自:https://blog.csdn.net/rookinzhang/article/details/80259857 Python中可变对象和不可变对象:https://www.cnblogs. ...
- MSMQ消息加密
证书实现非对称加密/解密的代码如下 //非对称加密密钥 static byte[] RSAEncrypt(byte[] enkey, X509Certificate2 Certificate) { R ...
- 空间数据索引RTree(R树)完全解析及Java实现
第一部分 空间数据的背景介绍 空间数据的建模 基于实体的模型(基于对象)Entity-based models (or object based) 常用的空间数据查询方式 空间数据获取的方法 R树 简 ...
- 14 Scroll 滚动搜索
Scroll的用法: 第一次搜的时候,要指定 快照保留时间1min,分页的大小:2条/页: 对于第一次搜索,ES会返回一个这个scroll的id: 下次再搜的时候,就带着这个scrollid去搜就 ...
- 修改Excel脚本
批量修改Excel TODO: 批量修改Excel 功能: 将图片防止在本地,读取excel数据,拆分数据之后根本地照片名称对比,然后上传服务器,创建新得excel. #!/usr/bin/pytho ...
- R_基本统计分析_06
summary()提供基础的统计信息 sapply(x,FUN,options)可以指定统计函数 fivenum()可以返回图基五数 Hmisc 中的describe(data)返回变量,观测的变量, ...
- 点击其它位置,div下拉菜单消失
接下拉菜单那一篇: 加上点击其它位置,下拉菜单消失. 纯js写法: window.document.addEventListener('click', function(e) { var e = e ...
- UTF-8 中文编码范围
主流的匹配字符有两种 [\u4e00-\u9fa5]和[\u2E80-\u9FFF],后者范围更广,包括了日韩地区的汉字 import re pattern = re.compile("[\ ...
- MySQL中使用函数时,与后面括号不能之间不能根空格
修改前代码: select MAX (article_order) from mall_school_article where 1=1 and is_deleted = 0 and status = ...
- jeecg的开发api接口之旅(http)
一.接口测试工具 1.postman下载地址:https://download.csdn.net/download/qq_35792159/11898005 2.谷歌浏览器插件:https://www ...