2 条题解

  • 0
    @ 2025-11-10 11:12:11

    本题模拟+贪心即可,仅需将能走的步数从大到小排序,然后按顺序取数直到超过“她”走的步数即可,若不能超过,则证明无解。注意初始化时“她”已经在xx格,还有不开longlong见祖宗

    void solve(){
        int n,x,y;cin>>n>>x>>y;
        vector<int> a(n+1);
    
        for(int i=1;i<=n;i++){
            cin>>a[i];
        }
        // 从大到小排序
        sort(a.begin()+1,a.end(),greater());
        ll sum=0,ta=x;
        ll ans=-1;
        for(int i=1;i<=n;i++){
            sum+=a[i];
            ta+=y;
            if(sum>=ta){
                ans=i;break;
            }
        }
    
        cout<<ans<<endl;
    }

    信息

    ID
    1119
    时间
    2000ms
    内存
    512MiB
    难度
    9
    标签
    递交数
    344
    已通过
    33
    上传者