hdu 4502(DP)
生活随笔
收集整理的這篇文章主要介紹了
hdu 4502(DP)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
吉哥系列故事——臨時(shí)工計(jì)劃
Time Limit: 3000/1000 MS (Java/Others)????Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 3665????Accepted Submission(s): 1452
已知吉哥一共有m天的假期,每天的編號從1到m,一共有n份可以做的工作,每份工作都知道起始時(shí)間s,終止時(shí)間e和對應(yīng)的工 資c,每份工作的起始和終止時(shí)間以天為單位(即天數(shù)編號),每份工作必須從起始時(shí)間做到終止時(shí)間才能得到總工資c,且不能存在時(shí)間重疊的工作。比如,第1 天起始第2天結(jié)束的工作不能和第2天起始,第4天結(jié)束的工作一起被選定,因?yàn)榈?天吉哥只能在一個(gè)地方工作。
現(xiàn)在,吉哥想知道怎么安排才能在假期的m天內(nèi)獲得最大的工資數(shù)(第m+1天吉哥必須返回學(xué)校,m天以后起始或終止的工作是不能完成的)。
?
Input 第一行是數(shù)據(jù)的組數(shù)T;每組數(shù)據(jù)的第一行是2個(gè)正整數(shù):假期時(shí)間m和可做的工作數(shù)n;接下來n行分別有3個(gè)正整數(shù)描述對應(yīng)的n個(gè)工作的起始時(shí)間s,終止時(shí)間e,總工資c。[Technical Specification]
1<=T<=1000
9<m<=100
0<n<=1000
s<=100, e<=100, s<=e
c<=10000
?
Output 對于每組數(shù)據(jù),輸出吉哥可獲得的最高工資數(shù)。?
Sample Input 1 10 5 1 5 100 3 10 10 5 10 100 1 4 2 6 12 266?
Sample Output 102 dp[i]代表前 i 天能夠獲得最大的收益,那么 dp[i] = max(dp[j]+val[j+1][i]) (0=<j<i) #include<stdio.h> #include<queue> #include<iostream> #include <string.h> #include <algorithm> #include <map> using namespace std; typedef long long LL; int n,m; int dp[105]; ///dp[i] 代表前 i 天能夠獲得最多的收益 int val[105][105]; ///val[i][j] 代表從第 i 天到第 j 天能夠獲得的收益 int main() {int tcase;scanf("%d",&tcase);while(tcase--){memset(val,0,sizeof(val));scanf("%d%d",&m,&n);int id = 0;for(int i=0;i<n;i++){int s,e,c;scanf("%d%d%d",&s,&e,&c);val[s][e] = max(val[s][e],c);}memset(dp,0,sizeof(dp));for(int i=1;i<=m;i++){for(int j=0;j<i;j++){dp[i] = max(dp[i],dp[j]+val[j+1][i]);}}printf("%d\n",dp[m]);}return 0; }?
轉(zhuǎn)載于:https://www.cnblogs.com/liyinggang/p/5595024.html
總結(jié)
以上是生活随笔為你收集整理的hdu 4502(DP)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hibernate CRUD操作
- 下一篇: 【安装MongoDB】CentOS7 下