2019/10/8 今日头条笔试第3题

2019/10/8 今日头条笔试第3题

#include <iostream>
#include <vector>

using namespace std;

int helper(int n,int m,vector<vector<int>>& dp,vector<vector<int>>& arm,int c,int x,int cur_m) {
	if(x>=c) return 0;

	if(cur_m<m&&n-arm[x][0]) {
		dp[x][n] = max(dp[x+1][n]?dp[x+1][n]:helper(n,m,dp,arm,c,x+1,cur_m),dp[x+1][n-arm[x][0]]?dp[x+1][n-arm[x][0]]+arm[x][1]:
			helper(n-arm[x][0],m,dp,arm,c,x+1,cur_m+1)+arm[x][1]);
	}
	else
		dp[x][n] = dp[x+1][n]?dp[x+1][n]:helper(n,m,dp,arm,c,x+1,cur_m);

	return dp[x][n];
}

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	int n,m;
	cin >> n >> m;
	vector<vector<int>> arm;
	int x,y,c = 0;
	while(cin >> x >> y) {
		vector<int> temp;
		temp.push_back(x);
		temp.push_back(y);
		arm.push_back(temp);
		++c;
	}

	int res = 0;
	vector<vector<int>> dp(c,vector<int> (n,0));
	res = helper(n,m,dp,arm,c,0,0);
	cout << res << endl;

	return 0;
}
全部评论

相关推荐

05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-03 18:13
点赞 评论 收藏
分享
评论
4
4
分享

创作者周榜

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