2 条题解
-
1
世界上最好的题解😄
#include<bits/stdc++.h> using namespace std; const int N=500010; int n,a,b,w[N]; bool check(int x){ int s=0; for(int i=1;i<=n;i++){ if(w[i]-a*x<+0)continue; int p=ceil((w[i]-a*x)*1.0/b); s+=p; } return s<=x; } int bsearch(int l,int r){ while(l<r){ int mid=(l+r)>>1; if(check(mid))r=mid; else l=mid+1; } return l; } int main(){ cin>>n>>a>>b; int l=0,r=0; for(int i=1;i<=n;i++){ cin>>w[i]; r=max(r,w[i]/a+1); } int ans=bsearch(l,r); cout<<ans; return 0; }
看过的麻烦点个赞呗🚀️
-
0
#include<bits/stdc++.h> using namespace std; int n,a,b; int w[500005]; int cnt=0; priority_queue<int> q; int main(){ cin>>n>>a>>b; for(int i=1;i<=n;i++){ cin>>w[i]; q.push(w[i]); } while(1){ cnt++; int k=q.top(); k-=b; q.pop(); q.push(k); if(q.top()-(cnt*a)<=0){ cout<<cnt<<endl; return 0; } } return 0; }
- 1
信息
- ID
- 808
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 3
- 标签
- 递交数
- 5
- 已通过
- 3
- 上传者