#include<bits/stdc++.h>
using namespace std;
#define Rep(i,a,b) for(int i=(a);i<=(b);i++)
int n;
#define maxn 1010
struct Seg{
int l,r,w;
}e[maxn];
int dp[maxn];
bool cmp(Seg x,Seg y)
{
return x.r<y.r;
}
int main()
{
cin>>n;
Rep(i,1,n)
{
cin>>e[i].l>>e[i].r>>e[i].w;
}
sort(e+1,e+1+n,cmp);
for(int i=1;i<=n;i++)dp[i] = e[i].w;
Rep(i,2,n)
{
Rep(j,1,i-1)//其实可以再优化O(nlogn)
{
if(e[i].l>=e[j].r)dp[i] =max(dp[i],dp[j]+e[i].w);
}
}
int ans = 0;
for(int i=1;i<=n;i++)ans = max(ans,dp[i]);
cout<<ans;
return 0;
}
这下必须要用dp了。。或许贪心乱搞可以搞出来?不知道。
上面代码不是最优,还可以优化但鉴于已经可以A了就