51Nod 排队接水【贪心】

n n 个人一起排队接水,第i个人需要 b[i] b [ i ] 的时间来接水。
1<=n<=1000 1 <= n <= 1000
0<=b[i]<=1000 0 <= b [ i ] <= 1000
同时只能有一个人接水,正在接水的人和没有接水的人都需要等待。
完成接水的人会立刻消失,不会继续等待。
你可以决定所有人接水的顺序,并希望最小化所有人等待时间的总和。

超级简单的一道贪心题,由于一个正在接水的人会影响到所有还没有接水的人,所以我们只需要贪心一下让需要时间少的人优先接水就好了。排一下序然后求一个前缀和即可。

关键代码:

for(I=1;I<=N;I++){
        Time[I]=Read();
}
sort(Time+1,Time+1+N);
for(I=1;I<=N;I++){
    Sum[I]=Sum[I-1]+Time[I];
}
for(I=1;I<=N;I++){
    Ans+=Sum[I];
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值