刚刚 abc338_c 求调
  • 板块题目总版
  • 楼主2c_s
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/1/27 21:44
  • 上次更新2024/1/28 01:32:39
查看原帖
刚刚 abc338_c 求调
583186
2c_s楼主2024/1/27 21:44

题目

三分法代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=1e6+10;
ll n,q[N],a[N],b[N],mi=1e9;
inline int check(ll x){
    ll mi=1e9;
    for(int i=1;i<=n;++i){
        if(b[i]!=0)mi=min(mi,(q[i]-a[i]*x)/b[i]);
    }
    return x+mi;
}
int main(){
    cin>>n;
    for(int i=1;i<=n;++i)cin>>q[i]
    for(int i=1;i<=n;++i){
        cin>>a[i];
        if(a[i]!=0)mi=min(mi,q[i]/a[i]);
    }
    for(int i=1;i<=n;++i)cin>>b[i];
    ll l=0,r=mi;
    while(l<=r){
        ll lmid=l+(r-l)/3,rmid=r-(r-l)/3;
        if(check(lmid)>check(rmid))r=rmid-1;
        else l=lmid+1;
    }
    ll ans=1e9;
    for(int i=1;i<=n;++i){
        if(b[i]!=0)ans=min(ans,(q[i]-a[i]*r)/b[i]);
    }
    cout<<r+ans;
	return 0;
}
2024/1/27 21:44
加载中...