80分求助

P1478 陶陶摘苹果(升级版)

7teen @ 2022-05-19 15:07:52

#include <bits/stdc++.h>
using namespace std;
int n,lq,chair,t_high,ans=0;
struct apple{
    int high;//苹果的高度 
    int phy;//力气 
}a[5005];
bool cmp(apple a,apple b)
{
    return a.phy < b.phy;//按力气排序 
}
int main()
{
    cin >> n >> lq;//苹果数 总力气 
    cin >> chair >>t_high;//椅子的高度 陶陶的高度 
    for(int i=1; i<=n; i++)
    {
        cin>>a[i].high>>a[i].phy;
    }
    sort(a+1,a+1+n,cmp);
    int heigh = chair + t_high;//椅子的高度 +陶陶的高度 
    for(int i=1;i<=n;i++)
    {
        if(a[i].high<=heigh&&a[i].phy<lq)
        {
            ans++;
            lq-=a[i].phy;
            if(lq<1)
            {
                return 0;
            } 
        }
    }
    cout<<ans;
}

by SegTree @ 2022-05-19 15:34:20

for(int i=0;i<n;++i){
        if(a[i].high>=heigh)continue;
        if(lq-a[i].phy<0){
            break;
        }
        else {
            ans++;
            lq-=a[i].phy;
        }
}
printf("%d\n",ans);

剩下的力气可以刚好摘完苹果的时候也可以。


by SegTree @ 2022-05-19 15:34:37

@7teen


by 7teen @ 2022-05-20 21:23:25

@jpb_Saturn 我测试了下好像不对大佬


by SegTree @ 2022-05-21 09:24:54

那个 \ge 应该改成 >

@7teen


|