为什么评测过不了?(20分)

P1478 陶陶摘苹果(升级版)

minecraft201723 @ 2019-03-28 21:31:42

include<iostream>

include<cstdio>

using namespace std; int main(){ long long int n,s,a,b,xi[50001],yi[50001],h,l=100000,ans=0,j,c; bool hhh[50001]={0}; cin>>n>>s; cin>>a>>b; h=a+b; for(int i=1;i<=n;i++){ cin>>xi[i]>>yi[i]; if(xi[i]<=h&&yi[i]<=s) hhh[i]=1; } for(int i=1;i<=n;i++){ if(s<=0) break; for(j=1;j<=n;j++){ if(yi[i]>s) hhh[i]=0; if(hhh[i]&&yi[i]<l){ l=yi[i]; c=j; } } hhh[c]=0; s-=l; ans++; l=10000; } cout<<ans; return 0; }


by aminoas @ 2019-03-28 21:32:49

@minecraft201723

希望更丰富的展现?使用Mark♂down


by Leap_Frog @ 2019-03-28 21:34:17

太乱了!!!


by 陷语 @ 2019-03-28 21:54:35

@minecraft201723

点击这个形状的东西'</>'在里面插入代码,不然是没人会看的。。


by minecraft201723 @ 2019-03-28 21:56:47

谢谢


by minecraft201723 @ 2019-03-28 21:57:24

#include<iostream>
#include<cstdio>
using namespace std;
int main(){
    long long int n,s,a,b,xi[50001],yi[50001],h,l=100000,ans=0,j,c;
    bool hhh[50001]={0};
    cin>>n>>s;
    cin>>a>>b;
    h=a+b;
    for(int i=1;i<=n;i++){
        cin>>xi[i]>>yi[i];
        if(xi[i]<=h&&yi[i]<=s) hhh[i]=1;
    }
    for(int i=1;i<=n;i++){
        if(s<=0) break;
        for(j=1;j<=n;j++){
            if(yi[i]>s) hhh[i]=0;
            if(hhh[i]&&yi[i]<l){
                l=yi[i];
                c=j;
            }
        }
        hhh[c]=0;
        s-=l;
        ans++;
        l=10000;
    }
    cout<<ans;
    return 0;
}

by Hams_rain @ 2019-07-17 21:21:02

@minecraft201723

嗯这道题是一个贪心

有可能你不知道贪心是什么所以才会用这个awa

我可以推荐给你一个排序用的sort函数

具体怎么用我建议你去百度

这道题的思路是先排序然后在从力气最小的开始判断

如果高度够的话就把苹果数+1

若是不够的话就continue

如果没有力气就直接break

QAQ


|