OO第二单元总结
OO第五次作业
第一次写电梯,感觉还挺喜欢电梯的,写得比较顺利,大概三个小时左右就差不多完成了第一个版本,因为也没有什么要优化的地方,就是单纯的跑起来而已。相比于才结束的求导,电梯才是让我真的感觉到了OO的乐趣的一次作业。
代码分析



我用了四个类,其实就是很基础很普通的多线程而已,感觉没啥可以多说的。run的基本复杂度有点高,因为大部分电梯的功能都放在run里面了,没有写在方法里。
公测
满分
互测
满分
OO第六次作业
使用了楼层类,模拟电梯交互,在读入请求时,向请求队列里加入请求,并把请求分发到对应的开始楼层,模拟人在电梯前面排队。每个楼层类包含两个排队的队列和两个按钮,上楼下楼。当电梯上楼的时候,询问到达的每一层,是否有人上楼,有就带上,下楼时候同理。
代码分析




updatestatus的复杂度有点高,因为用了很多if-else来判断电梯状态如何更新的情况。我自认为做到了一个正常电梯该做的调度,但是强测只有86分,感觉有太多为了优化而优化的地方,我只是做了一个平时坐的电梯那样子的基础优化。不过我觉得完全按照运行时间来判定性能确实会让一些电梯的行为变得很不合常理……
强测
性能分只有6分,约等于没有
互测
相安无事的一个room
OO第七次作业
第七次作业确实感觉难度突然上了个档次,我选择了很偷懒的办法,反正目的也不是为了性能分,就是为了能过个强测别无效作业而已。毕竟上一次的性能都不咋地,这一次调度再怎么优化,电梯本身性能也不行,基本放弃了性能分。刚开始以为蛮难的,没想到写的时候rush三四个小时就写好了,大概是因为没有考虑优化吧。为了方便我给每种电梯写了个电梯类,我知道方法不太好。
代码分析







可以看出很多复杂度都不理想,偷懒写了很多ABC,我发誓我下次绝对不偷懒,一定从一开始就认真构思……
强测
WA了一个点,会跑到20以上的楼层,很迷。触发条件也很迷。
互测
被HACK了两个点,很懵逼的rtle,改bug也改的很懵逼,改了一会儿这个又rtle了,不知道是不是线程安全的问题?但是感觉好的时候就是稳定没问题,错的时候又是稳定错……
总结
电梯这个单元感觉收获很多,接触了多线程,学习了线程的相关知识,写电梯比写求导快乐多了……希望下个单元也能善良一点!

浙公网安备 33010602011771号