根据两个特征将组排序为子组

时间:2015-10-26 02:22:49

标签: algorithm

我认为我有一个适度有用的解决方案,但如果有人有更好的方法,我真的很好奇。我也不确定如何正确定义我遇到的问题类型,这意味着我没有做过多少谷歌搜索。

问题: 我有一个数量不明的玩家正在为游戏选择角色。有效角色为1-5。玩家必须选择主要角色,但他们也可以选择辅助角色。他们的次要角色的选项是"无",1-5中的一个(与他们的主要不同),或者"任何"。然后我必须把球员分成5个队,每个队需要一个号码。目标是最大化正确组建团队的数量。

我目前的解决方案: 将玩家分为3组:A)选择" none"作为他们的中学,B)选择一个数字作为他们的中学的人,C)选择"任何"他们的次要

  • 让A组队员加入队伍,将他们作为主要角色。

  • 计算现有的非完整团队中剩余的未结头寸数

  • 计算B组(主要和次要)代表的数字角色

  • 根据未平仓头寸的数量,开始添加B组的玩家 - 填补位置的顺序是最大的赤字到最小的赤字,并且倾向于挑选那些作为其他角色的玩家B组的大小(以表示形式)

  • 用C组填写左边的

如果情况变得更糟,我总是可以将人们分成小组而不管他们的首选角色,但理想情况下我会创建正确的小组。

1 个答案:

答案 0 :(得分:1)

主要和次要角色对团队平衡有同样的影响吗?如果是这样,您可以从团队的角度和每个团队当前角色/需求的状态来看待问题。

例如,团队A中的第一个人可能都是1和3,因此团队A有1和3。团队A中的下一个人不应该是主要或次要角色中的1或3 。使用剩余的团队需求(角色2,4,5),您可以遍历可能的成员,直到1)团队填充/平衡或2)没有剩余的候选人。

还有更多问题吗?我感觉我没有得到整个问题。