1 条题解
-
0
#include<bits/stdc++.h> using namespace std; int s[500001],n,a,b,k,y,t; bool check(int x) { k=0; for(int i=1;i<=n;i++) { int t=s[i]-x*a; if(t<=0) continue; int y=t/b; if(t%b!=0) y++; k+=y; if(k>x) return false;//小优化 (不写也行) } if(k<=x) return true; else return false; } int main() { cin>>n>>a>>b; for(int i=1;i<=n;++i) scanf("%d",&s[i]); int l=0,r=500001; while(l<r) { int mid=(l+r)>>1; if(check(mid)) r=mid; else l=mid+1; } printf("%d",r); return 0; }
不难,多想想就行 看不懂可以问我~(真的不想写注释了qwq,回头有时间了我再写)
- 1
信息
- ID
- 1706
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- 递交数
- 9
- 已通过
- 4
- 上传者