汕头市队赛 SRM13 T2
2024-10-20 06:39:20
这道题很容易想到是二分 但是因为可能会爆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 ;
}
最新文章
- IMD中一些JS方法总结
- poj3233 矩阵等比数列求和 二分
- Word撤销键(Ctrl+z)无效的解决方法
- insert table 和create table as 区别
- MFC CFileDialog用法例子。
- Eclipse为Unity3d编写jar组件
- Python之路【第二十一篇】:Django之Form组件
- Nodejs in Visual Studio Code 10.IISNode
- linux修改主机名-IP
- 【socket.io研究】0.前提准备
- How to recover from &#39;programmers burnout(转)
- webpack的四个核心概念介绍
- asp.net后台发送HTTP请求
- 【redis】6、redis常用命令
- git pull 解决 refusing to merge unrelated histories 错误
- 004 Java的一次面试题,学长列举
- Dreamweaver 2
- simhash
- 学JS的心路历程-函式(六)其余参数及预设参数
- Charles基本使用
热门文章
- python__基础 : sys模块: sys.argv与sys.path
- Charles Dickens【查尔斯&#183;狄更斯】
- auto用法
- BZOJ 1441: Min(裴蜀定理)
- 【文件处理】RandomAccessFile
- PHP.25-TP框架商城应用实例-后台2-商品列表页-搜索、翻页、排序
- 质数,$\varphi$和$\mu$线性筛
- 微信小程序 | 49,小程序入门集锦系列文章20篇
- Vim常用指令总结(持续更新中)
- [0] OpenCV_Notes - 琐碎