算法笔记8.1.2

#include<iostream>//n个数中取K个数,要求k个数的和=x,如果有多种方案,取方案中,每个数平方后的和的最大的那个方案
#include<vector>
using namespace std;
#define maxn 30
int n, k, x, maxsump = -1, a[maxn];
vector<int>temp, ans;
void DFS(int idex, int nowk, int sum, int sump)
{
	if (idex == x || nowk > k || sum > x)return;
	if (nowk == k && sum == x)
	{
		if (sump > maxsump)
		{
			maxsump = sump;
			ans = temp;
		}
		return;
	}
	temp.push_back(a[idex]);
	DFS(idex + 1, nowk + 1, sum + a[idex], sump + a[idex] * a[idex]);//这里如果说明每个数可以多次选择,则可以改成DFS(idex , nowk + 1, sum + a[idex], sump + a[idex] * a[idex])
	temp.pop_back();
	DFS(idex + 1, nowk, sum , sump );
}
int main()
{
	cin >> n>>x>>k;
	for (int i = 0; i < n; i++)
	{
		cin >> a[i];
	}
	DFS(0, 0, 0, 0);
	for (int i = 0; i < ans.size(); i++)
		cout << ans[i] << " ";
	cout << endl;
	return 0;
}


代码学习笔记 文章被收录于专栏

学习笔记,pat,牛客

全部评论

相关推荐

🎓学历背景:末二本+北邮硕想找段日常&nbsp;是简历写的有问题吗&nbsp;目前有家100-499的小厂过了,但大厂现在一个都没面过,官网投递一直在筛简历
牛客44176770...:我也28届,也是投了一个多月,四月底投的,面了6.7场,有个大厂,没结果应该是挂了,有三个小厂面试的很顺利,结果没下文了,互联网我恨你!这五月我时间都在投简历和改简历上了,结果没啥收获,算法也没刷,因为约的面试都没有算法索性就只看项目和八股唉,真的好累啊
我的简历长这样
点赞 评论 收藏
分享
许愿一个offer_...:不是啊,这个只代表你的面试官提交了你的面评,面试是否通过还是要看官网状态呢
腾讯2025实习生招聘
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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