20pts,TLE求调
查看原帖
20pts,TLE求调
1785833
LHS28_楼主2025/8/2 12:21
#include<bits/stdc++.h>
using namespace std;

typedef long long ll;

const int N = 110;
ll n,p;
struct stu{
    ll z,a,b;
}m[N];

bool check(ll x){
    ll sum = 0;
    for (int i = 1;i <= n;i++){
        if (x <= m[i].z) sum += m[i].a*x;
        else sum += m[i].a*m[i].z + m[i].b*(x-m[i].z);
    }
    return sum >= p;
}

void find(){
    int l = 0,r = p+1,ans = 0;
    while (l+1 < r){
        ll mid = (l+r)>>1;
        if (check(mid)) r = mid,ans = mid;
        else l = mid;
    }
    cout<<ans;
    return;
}

int main(){
    cin>>n>>p;
    for (int i = 1;i <= n;i++) cin>>m[i].z>>m[i].a>>m[i].b;
    find();
    return 0;
}

该代码中,将r改成1e12+1没有WA,但全TLE,若r=p+1,则会有WA和TLE。

2025/8/2 12:21
加载中...