4 条题解

  • 0
    @ 2024-11-22 21:36:20
    n,m=map(int,input().split())
    l=[0]*5005
    r=[0]*5005
    v=[0]*5005
    for i in range(n):
        l[i],r[i],v[i]=map(int,input().split())
    for i in range(n):
        for j in range(n-i):
            if r[j]>r[j+1]:
                l[j],l[j+1]=l[j+1],l[j]
                r[j],r[j+1]=r[j+1],r[j]
                v[j],v[j+1]=v[j+1],v[j]
    dp=[0]*100005
    i=1
    for j in range(m+1):
        if j>0:
            dp[j]=dp[j-1]
        while i<=n and r[i]<=j:
            dp[r[i]]=max(dp[r[i]],dp[l[i]-1]+v[i])
            i+=1
    print(dp[m])
    

    信息

    ID
    952
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    (无)
    递交数
    85
    已通过
    15
    上传者