http://acm.hdu.edu.cn/showproblem.php?pid=4502
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
int i,j,s,n,e,m,dp[1010],var;
vector<int> c[1010];
vector<int> w[1010];
int T;
scanf("%d",&T);
while(T--){
scanf("%d%d",&m,&n);
for(i=0;i<=m;i++)
{
dp[i]=0;
c[i].clear();
w[i].clear();
}
for(i=0;i<n;i++){
scanf("%d%d%d",&s,&e,&var);
if(e>m) continue;
c[e].push_back(s);
w[e].push_back(var);
}
for(i=1;i<=m;i++)
{
dp[i]=dp[i-1];
int k=c[i].size();
for(j=0;j<k;j++)
dp[i]=max(dp[i],dp[c[i][j]-1]+w[i][j]);
}
printf("%d\n",dp[m]);
}
}