1 条题解

  • 0
    @ 2017-10-17 19:57:16

    #include<bits/stdc++.h>
    const int maxn=10001;
    inline const void read(int &a)
    {
    a=0;char c=getchar();
    while(c<'0'||c>'9')c=getchar();
    while(c>='0'&&c<='9')
    {
    a=(a<<1)+(a<<3)+c-'0';
    c=getchar();
    }
    }
    inline const void write(int a)
    {
    if(a<0){putchar('-');a=-a;}
    if(a>9)write(a/10);
    putchar(a%10+'0');
    }
    int n,m,r;
    struct milk_time
    {
    int start,end,produce;
    }p[maxn];
    inline const bool comp(const milk_time&a,const milk_time&b)
    {
    if(a.start<b.start)return true;
    if(a.start>b.start)return false;
    if(a.end<b.end)return true;
    return false;
    }
    int f[maxn],ans=0;
    int main()
    {
    memset(f,0,sizeof(f));
    read(n);read(m);read(r);
    for(int i=1;i<=m;i++)
    {read(p[i].start);read(p[i].end);read(p[i].produce);}
    std::sort(p+1,p+1+m,comp);
    for(int i=1;i<=m;i++)f[i]=p[i].produce;
    for(int i=1;i<=m;i++)
    {
    for(int j=1;j<i;j++)
    {
    if(p[i].start-p[j].end<r)continue;
    f[i]=std::max(f[j]+p[i].produce,f[i]);
    }
    ans=std::max(ans,f[i]);
    }
    std::cout<<ans;
    return 0;
    }

  • 1

信息

难度
8
分类
(无)
标签
递交数
30
已通过
5
通过率
17%
上传者