NOI plus 2025 游寄

· · 生活·游记

T1:

100pts::

#include<bits/stdc++.h>
#include<vector>
using namespace std;
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    long long n,m,cost2=1<<30;
    cin>>n>>m;
    vector<long long>x(0);
    x.reserve(n);
    for(long long i=0;i<n;i++){
        long long a,b;
        cin>>a>>b;
        cost2=min(a+b,cost2);
        x.push_back(a);
    }
    sort(x.begin(),x.end());
    long long sell=m/cost2;
    long long res=2*sell;
    long long ans=0;
    m=m%cost2;
    for(long long i=0;i<n;i++){
        if(x[i]>cost2)break;
        ans=max(ans,res);
        while(sell>0&&x[i]>m){
            res-=2;
            m+=cost2;
        }
        m-=x[i];
        res++;
    }
    ans=max(ans,res);
    cout<<ans<<endl;
    return 0;
} 

可能赛时代码:

#include<bits/stdc++.h>
#include<vector>
using namespace std;
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    long long n,m,cost2=1<<30;
    cin>>n>>m;
    vector<long long>x(0);
    x.reserve(n);
    for(long long i=0;i<n;i++){
        long long a,b;
        cin>>a>>b;
        cost2=min(a+b,cost2);
        x.push_back(a);
    }
    sort(x.begin(),x.end());
    long long sell=m/cost2;
    long long res=2*sell;
    long long ans=0;
    m=m%cost2;
    for(long long i=0;i<n;i++){
        ans=max(ans,res);
        while(sell>0&&x[i]>m){
            res-=2;
            m+=cost2;
        }
        m-=x[i];
        res++;
    }
    cout<<ans<<endl;
    return 0;
} 

死于忘记剪枝,少一次更新。 我第一次noip,现高二,赛时代码更差,goal<=90pts.

我的现状请移步:CSP-S2025