Topcoder_3_154

来源:互联网 发布:高达软件 编辑:程序博客网 时间:2024/05/23 01:12

【问题描述】
    有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

原创粉丝点击