本蒟蒻大脑发抽 ,死磕这题 1h , 结果—— 10 分(样例能过)
源代码 :
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std ;
#define int long long
#define time TIME
#define INF 10005
int t , m ;
int time [INF] , value [INF] ;
int dp [INF] ;//dp 枚举当前第 j株草的最大价值
signed main ( ) {
cin >> t >> m ;
for(int i = 1 ; i <= m ; i ++) {
cin >> time [i] >> value [i] ;
} //输入
for(int i = 1 ; i <= m ; i ++){//枚举每种草
for(int j = time[i] ; j <= t ; j ++){//枚举时间
dp[j] = max (dp[i] /*不采*/, dp[j - time[i]/*剩余时间*/] + value[i]/*采*/) ;
}
}
cout << dp[t] << endl ; //输出
return 0 ;
}
来自蒟蒻的感激