hdu 4502 吉哥系列故事——临时工计划 dp

#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
int f[111];
int e[111][111];//101不够????
int main()
{
    int T;
    cin>>T;
    while(T--)
    {
        int i,j,k,a,b,c,n,m;
        cin>>m>>n;
        memset(e,0,sizeof(e));
        for(i=0;i<n;i++)
        {
            cin>>a>>b>>c;
            if(b>m)continue;
            if(e[a][b]<c)
                e[a][b]=c;
        }
        memset(f,0,sizeof(f));
        for(i=1;i<=m;i++)
            for(j=0;j<=i;j++)
            {
                f[i]=max(f[i],f[j]+e[j+1][i]);
            }
        cout<<f[m]<<endl;
    }
    return 0;
}
/*
    f[i]表示前i天赚钱的最大值,e[i][j],从i开始到j结束,能赚到的钱
    dp:
    f[i]=max(f[i],f[j]+e[j+1][i])(0<=j<=i);
*/

你可能感兴趣的:(dp)