【问题描述】
有m个工人,有n项任务需要完成,并且已经预知每个工人所能完成的任务。如果工人i完成t项不同的任务,那么必须支付给他cost[i]*t^2的报酬,现在的目的是尽量降低所有任务的总报酬。
现在给定一个描述每个工人能力的字符串数组,如果第j个位置为'Y'则代表该工人能完成第j项任务,'N'代表不能。同时给定代表每个工人的报酬整数数组cost,第i个值表示第i个工人的基本报酬。要求得到完成所有任务的最低报酬,如果所给条件不能完成所有任务则返回-1。
定义:
类 JobPlanner
方法 public int minimalCost(String[] can, int[] cost)
约束:
1、can和cost数组包含相同个数的元素,1至50个;
2、can数组中每个字符串的长度均相同(1至50),并仅由'Y'和'N'组成;
3、cost中的每个元素取值1至500000。
测试用例:
1、{"YY","YY"} {1,2} Returns: 3
2、{"YY","YY"} {1,5} Returns: 4
3、{"YN", "YY"} {1, 5} Returns: 6
4、{"YN", "YN"} {1, 1} Returns: -1
Topcoder_3_154
最新推荐文章于 2018-08-17 16:36:00 发布