题解 | #点菜问题#

点菜问题

http://www.nowcoder.com/practice/b44f5be34a9143aa84c478d79401e22a

#include<iostream>
using namespace std;
#include<algorithm>
#include<cstring>
#include<string>
const int MAX = 1024;
struct Dish {
	int price;
	int score;//菜的评价分数
}a[MAX];
int dp[1100][110];
//预算C,菜种类N
int maxScore(int C, int N) {
	//边界
	if (C <= 0) {
		return 0;
	}
	if (N == 0) {
		return 0;
	}
	//核心递推
	if (dp[C][N] != -1)return dp[C][N];
	int i = N;
	for (; i >= 1; i--) {
		if (C >= a[i].price) {//找到买得起的菜
			dp[C][N] = max(maxScore(C, i - 1), maxScore(C - a[i].price, i - 1) + a[i].score);
			return dp[C][N];
		}
	}
	dp[C][N] = 0;
	return 0;
	
}
int main() {
	ios::sync_with_stdio(false);

	int C, N;
	while (cin >> C >> N) {
		memset(dp, -1, sizeof(dp));
		for (int i = 1; i <= N; i++) {
			cin >> a[i].price >> a[i].score;
		}

		cout << maxScore(C, N) << endl;
	}

	return 0;
}

全部评论

相关推荐

头像
04-17 09:29
已编辑
湖南农业大学 后端
睡姿决定发型丫:本硕末9也是0offer,简历挂了挺多,只有淘天 美团 中兴给了面试机会,淘天二面挂,美团一面kpi面,中兴一面感觉也大概率kpi(虽然国企,但一面0技术纯聊天有点离谱吧)
点赞 评论 收藏
分享
东孝子_强东我偶像:你怎么当孝子都和我时间一样😭
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务