- 思路:简单的dp,即把天数看做重量。
- #include <stdio.h>
- #include <string.h>
- #include <algorithm>
- using namespace std;
- int main()
- {
- int n,m,i,j,t;
- int a[105][105],dp[105];
- scanf("%d",&t);
- while(t--)
- {
- memset(a,0,sizeof(a));
- memset(dp,0,sizeof(dp));
- scanf("%d%d",&n,&m);
- for(i = 1;i<=m;i++)
- {
- int x,y,c;
- scanf("%d%d%d",&x,&y,&c);
- a[x][y] = max(a[x][y],c); //在同一时间段,薪资高的覆盖掉薪资低的
- }
- for(i = 1;i<=n;i++)
- {
- for(j = i;j>=1;j--) //ps:j<=i,故j-1一直在前i天的范围内
- dp[i] = max(dp[i],dp[j-1]+a[j][i]);//dp[i]表示前i天的最大收益
- }
- printf("%d\n",dp[n]);
- }
- return 0;
- }
hdu4502吉哥系列故事——临时工计划
最新推荐文章于 2018-10-21 20:20:32 发布