Topcoder_3_154

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值