首页 > 试题广场 >

礼品派发

[编程题]礼品派发
  • 热度指数:224 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

vivo为回馈粉丝,进行礼品派发活动,不同礼品价格不同,为公平起见,需要将全部的礼品公平的分配到粉丝手中,且每位粉丝拿到的礼品总价格相同。请帮忙确认以下的礼品数量和价格是否可以满足公平的分配原则,可以则返回true,否则返回false。

例如:

价格分别为 5, 4, 1, 3, 2, 3, 2 的礼物是否可以公平分配到4名粉丝手?答案是可以的,按(5)、(2,3)、(2,3)、(1,4)组合,第一位粉丝分配到价格为5的礼物,第二位分配到价格为2和3的礼物,第三位分配到价格2和3的礼物,第四位分配到价格为1和4的礼物,全部礼物分配完,最后返回true,代表可以公平分配

程序需要输入的参数是价格数组和粉丝人数(数组元素和粉丝人数均小于1000)

示例1

输入

[5,4,1,3,2,3,2],4

输出

true
示例2

输入

[1,2,2,2,2],3

输出

false
头像 丨阿伟丨
发表于 2025-09-12 10:17:21
题目链接 礼品派发 题目描述 给定一个包含n个礼品价格的数组 prices 和一个粉丝人数 k。需要判断是否能将所有礼品全部分配给 k 位粉丝,并使得每位粉丝获得的礼品总价值完全相等。 思路分析 这是一个经典的K个相等子集划分问题,属于NP难问题,通常使用回溯搜索(DFS)算法来解决。 首先,我们可 展开全文