首页 新闻 搜索 专区 学院

一道腾讯的编程题。

0
悬赏园豆:10 [已解决问题] 解决于 2018-04-06 16:15

m个任务,第i个任务需要Xi的时间去完成,难度为Yi。

有m台机器,第i台机器最长工作时间为Zi,机器等级为Wi。

对于一个任务只能交由一台机器完成,任务被完成的条件为:任务所需时间Xi小于机器最长工作时间Zi,任务难度Yi小于等于机器等级Wi。

任务被第i台机器完成的收益为200*Xi+3*Yi。

一台机器只能分配一个任务。

想完成尽可能多的任务,若有多种方案,求收益最大的那个?

输入:

共m+n+1行

第一行:n m

接下来n行:Zi Wi

接下来m行:Xi Yi

输出:

任务完成数 收益

示例:

输入

1 2

100 3

100 2

100 1

输出

1 20006

luoyin500的主页 luoyin500 | 初学一级 | 园豆:89
提问于:2018-04-05 17:13
< >
分享
最佳答案
0

我感觉,把任务排个序,把箱子排个序,从大到小,然后按照顺序把任务依次放到箱子里。因为一个机器只能装一个任务,所以就不是背包问题了。一个机器只能完成一个任务,当然是选择收益最高的那个任务去完成。把任务收益从大到小排序,依次完成。

收获园豆:10
Shendu.CC | 小虾三级 |园豆:1914 | 2018-04-05 20:13

跟你的分析类似,不过得考虑难度的问题。诶找到了原题。。。竟然是acm原题。。。

https://blog.csdn.net/weixin_35077983/article/details/53677672

luoyin500 | 园豆:89 (初学一级) | 2018-04-06 16:13

@luoyin500: 哈哈哈哈,出题的人应该是搞过acm的

Shendu.CC | 园豆:1914 (小虾三级) | 2018-04-08 09:51

@Shendu.cc: 现在大厂的笔试题基本都是翻译的acm

luoyin500 | 园豆:89 (初学一级) | 2018-04-08 15:03

@luoyin500: ...

Shendu.CC | 园豆:1914 (小虾三级) | 2018-04-08 15:34
其他回答(2)
0

背包问题。同学参考一下背包问题的代码,应该不难实现

chenjx85 | 园豆:202 (菜鸟二级) | 2018-04-05 19:40

这题好像不是背包问题。

支持(0) 反对(0) Shendu.CC | 园豆:1914 (小虾三级) | 2018-04-05 19:56
0

建二分图,边的权就是收益,然后求完美匹配,KM算法模板吧

JavaTheMachineGun | 园豆:313 (菜鸟二级) | 2018-04-06 17:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册