题解 | #采药#

采药

https://www.nowcoder.com/practice/d7c03b114f0541dd8e32ce9987326c16

#include <iostream>
#include <cstring>

using namespace std;

const int MAXN = 1000 + 10;
const int MAXM = 100 + 10;

int dp[MAXN];
int weight[MAXM];
int value[MAXM];

int main() {
	int t, m;
	while (cin >> t >>m){
		for (int i = 1; i <= m; i++){
			cin >> weight[i] >> value[i];
		}
		memset(dp, 0, sizeof(dp));
		for (int i = 1; i <= m; i++){
			for (int j = t; j >= weight[i]; j--){
				dp[j] = max(dp[j], dp[j - weight[i]] + value[i]); 
			}
		}
		cout << dp[t] << endl;
	}
	return 0;
}

全部评论

相关推荐

头像 会员标识
08-20 18:46
门头沟学院 C++
投递华为技术有限公司等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务