纠结了很久的一道题……
刚开始接触动态规划,有点难,自己能推出动态方程不容易啊!
#include <iostream>
#include <string>
using namespace std;
struct node
{
int s,e,v;
};
int dp[105];
int main()
{
node job[1005];
int n,m,t;
int i,j;
cin>>t;
while(t--)
{
cin>>m>>n;
for(i=0;i<n;i++)
cin>>job[i].s>>job[i].e>>job[i].v;
memset(dp,0,sizeof(dp));
for(i=1;i<=m;i++)
{
for(j=0;j<n;j++)
{
if(job[j].e<=i)
{
if(dp[i]<dp[job[j].s-1]+job[j].v)
dp[i]=dp[job[j].s-1]+job[j].v;
}
}
}
cout<<dp[m]<<endl;
}
return 0;
}