SRM479DIV2题解

昨晚(可以算是今天凌晨)的SRM479,题目的难度可以说不是很难,三题我都在这里简单地说下思路:

 

第一题:比较水的题目,从前向后加,如果总和大于fuel了,那么跳出,对应的i就是答案。

 

代码:

 

 

第二题:简单的贪心,对tea和coffee分别计算,每次都走到最远的没有服务过的人那里,这样花时最少,用另外的数组来记录要coffee的旅客编号,因为要从大到小,所以for循环从n-1开始,另外要对向量tea进行排序,从大到小。

 

注意乘客服务的时间可以直接计算,倒饮品的时间也可以直接算,剩下的就是计算走的时间了。

 

代码:

 

 

第三题,比较烦的题,因为n是小于等于8的,这样,我们可以先用dfs构造出最后乘客的可能顺序,然后进行模拟,计算出指定序下需要的时间,当然,但这个时间超过了boardingTime的时候,是无效的,直接返回,不用计算出确切的时间,我的做法是当时间大于boardingTime+5的时候就直接掐掉函数运行,直接break。

另外,要用到许多辅助数组进行状态的维护,table数组用来模拟,tmp数组用来保存乘客的顺序,用于dfs。

 

代码比较长:

 

 

总结:编码能力还是可以,就是思路不是很清晰,第三题从看题到开始拍代码,花了太多时间,导致了前两题有时间优势的情况下没有把第三题K掉,有点可惜,接下来就是做Division1了,但愿我不要在Division1上出什么差错。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值