首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获得最大分数

获得最大分数
EN

Stack Overflow用户
提问于 2014-09-01 17:36:09
回答 1查看 101关注 0票数 1

给出了一个n*n矩阵。

行表示学生,相应的列表示在该特定论文中获得的标记。

例如->

代码语言:javascript
复制
n=3

1 2 3 

4 5 6

7 8 9

然后,第一名学生在第一篇论文中得了1分,在第二篇论文中获得2分,等等。

第二名学生在第一篇论文中得了4分,在第二篇论文中得了5分等等。

给出->每个学生只会得到一张试卷来解决

按照上述条件,我们需要使n名学生获得的总分最大化。

对于上述输入,输出->>(8+6+1)=15。

约束->

1<=n<=100

代码语言:javascript
复制
My approach->

I thought to solve it using dp+bitmask but n can be as large as 100 so had to drop this idea.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-01 18:54:23

这是一个典型的加权二部图问题,可以用KM算法(匈牙利算法)来解决。

为了构造二分,我们把所有的学生放在一套,所有的试卷在另一组。我们将学生连接到具有价值X边缘的试卷,其中X是学生在该考试中可以获得的分数。在构造了图之后,只需运行KM算法,您就会得到答案。

这里有一个顶级编码器教程,它很好地解释了这类问题,并给出了一个代码模板。你可以从这里开始:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25610677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档