这道题很容易想到是二分 但是因为可能会爆LL 所以要加一波特判

#include<cstdio>
#include<cstring>
#include<algorithm>
#define LL long long
using namespace std;
const LL M=1e6+,mx=1e18;
LL read(){
LL ans=,c=getchar();
while(c<''||c>'') c=getchar();
while(c>=''&&c<=''){ans=ans*+(c-''); c=getchar();}
return ans;
}
LL n,S,mn;
LL h[M],w[M],yy[M];
bool check(LL k){
LL sum=S;
for(int i=;i<=n;i++)if(k>=yy[i]){
if(mx/w[i]<=k) return ;
if(sum>h[i]+w[i]*k) sum-=h[i]+w[i]*k;
else return ;
}
return sum<=;
}
int main()
{
freopen("tree.in","r",stdin);
freopen("tree.out","w",stdout);
n=read(); S=read(); mn=read();
for(int i=;i<=n;i++) h[i]=read();
for(int i=;i<=n;i++) w[i]=read();
for(int i=;i<=n;i++){
LL now=mn-h[i];
if(now%w[i]==) yy[i]=now/w[i];
else yy[i]=now/w[i]+;
}
LL l=,r=mx;
while(l<=r){
LL mid=(l+r)>>;
if(check(mid)) r=mid-;
else l=mid+;
}
printf("%lld\n",l);
return ;
}

最新文章

  1. IMD中一些JS方法总结
  2. poj3233 矩阵等比数列求和 二分
  3. Word撤销键(Ctrl+z)无效的解决方法
  4. insert table 和create table as 区别
  5. MFC CFileDialog用法例子。
  6. Eclipse为Unity3d编写jar组件
  7. Python之路【第二十一篇】:Django之Form组件
  8. Nodejs in Visual Studio Code 10.IISNode
  9. linux修改主机名-IP
  10. 【socket.io研究】0.前提准备
  11. How to recover from &#39;programmers burnout(转)
  12. webpack的四个核心概念介绍
  13. asp.net后台发送HTTP请求
  14. 【redis】6、redis常用命令
  15. git pull 解决 refusing to merge unrelated histories 错误
  16. 004 Java的一次面试题,学长列举
  17. Dreamweaver 2
  18. simhash
  19. 学JS的心路历程-函式(六)其余参数及预设参数
  20. Charles基本使用

热门文章

  1. python__基础 : sys模块: sys.argv与sys.path
  2. Charles Dickens【查尔斯&#183;狄更斯】
  3. auto用法
  4. BZOJ 1441: Min(裴蜀定理)
  5. 【文件处理】RandomAccessFile
  6. PHP.25-TP框架商城应用实例-后台2-商品列表页-搜索、翻页、排序
  7. 质数,$\varphi$和$\mu$线性筛
  8. 微信小程序 | 49,小程序入门集锦系列文章20篇
  9. Vim常用指令总结(持续更新中)
  10. [0] OpenCV_Notes - 琐碎