SRM479DIV2题解

来源:互联网 发布:淘宝和支付宝老板是谁 编辑:程序博客网 时间:2024/06/06 00:45

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

 

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

 

代码:

 

 

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

 

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

 

代码:

 

 

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

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

 

代码比较长:

 

 

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

 

原创粉丝点击