1 条题解

  • 0
    @ 2024-1-20 14:22:20
    #include<bits/stdc++.h>
    #define int long long
    using namespace std;
    int n,k,num=1;
    int sum[10005],f[10005];
    struct node
    {
    int p,t;
    bool operator < (const node &o)const
    {
    return p>o.p;
    }
    }a[10005];
    signed main()
    {
    //	freopen("尼克的任务.in","w",stdin);
    //	freopen("尼克的任务.out","r",stdout);
    cin>>n>>k;
    for(int i=1;i<=k;i++)
    {
    cin>>a[i].p>>a[i].t;
    sum[a[i].p]++;
    }
    sort(a+1,a+k+1);
    for(int i=n;i>=1;i--)
    {
    if(sum[i]==0)
    f[i]=f[i+1]+1;
    else for(int j=1;j<=sum[i];j++)
    {
    if(f[i+a[num].t]>f[i])
    f[i]=f[i+a[num].t];
    num++;
    }
    }
    cout<<f[1]<<endl;
    return 0;
    }
    
    • 1

    信息

    ID
    1405
    时间
    1000ms
    内存
    128MiB
    难度
    3
    标签
    递交数
    37
    已通过
    21
    上传者