signed

QiShunwang

“诚信为本、客户至上”

c++贪心算法总结

2021/3/21 0:01:48   来源:

c++贪心算法第一周末总结

总体来说,这周的贪心算法问题的解决并不是很满意,由于多种因素,练习题的解决总是会拖很长时间。其中最重要的就是思路单一,不懂变通:

  1. 海岸雷达
    当读到这个题的题干时,思路其实是有些混乱的。一方面是因为读题习惯不好导致忽视许多关键细节;另一方面就是因为过去的思维模式李毫无模板可循。前者现在正在改进,而后者则是根源性问题,更难解决。
    一开始,我总是从一个岛出发试着去求建设雷达所能覆盖的最大岛屿数量,并对此进行降序排序。但很快我就发现,这种思路可谓错误至极。一方面,计算一座岛屿的周围可覆盖的岛屿数量是非常繁琐的一件事;另一方面,这种思路完全忽视了题目中大陆的作用。从而解决问题的方式越来越脱离问题本身。
    为了寻找合适的解题思路,思考了一天的我在最后访问了一篇博文,并找到了通过圆与线的交点坐标来解决问题最合适的思路。除此之外,第二天的培训课上,导师也对相关思路以另一种方式做了较为详细的介绍。
    在解决这个问题时,我发现了手机编译器里的一个漏洞:sort()排序函数不是必须需要头文件声明的。
    思路解决后,代码上遇到的问题便也接踵而至。
  2. 骑车上学
    查理的上学时间问题是最直接点明我僵化思路并做出警告的重要问题。
    这是一道极为简单的问题,却被经验不足的我彻底地将其复杂化了。一开始,趋向于刚刚解决思路的雷达问题,以及课上导师刚刚解决的奶牛吃花的问题。我也决定用最朴素最直接的办法来初步分析这种上学问题的解题思路。可是当解题输入数据量到解决3个同学的情况时,多种情况的担忧便在努力算题的我的脑海中喷涌而出:如果有从没跟上的同学还怎么处理;每个同学出发的时间不同问题该怎么处理;每个同学与查理该怎么处理……一个接一个,原本运算复杂的思路逐渐变得更增加了许多种可能。
    经过同学帮忙,我发现了这道问题的本身有如何简单。然而,经验不足与实力不够往往贸然参与实战是必须要付出代价的。那个被浪费掉的晚自习以及那些被花费掉的时间我永远也不会忘记。
  3. 总结
    这个星期收货颇丰,但同时也使更多潜在的问题分分浮现。比如代码的完整性,比如函数运用的不熟悉以及在解决问题时常常抱有的侥幸心理。这些问题无时无刻都在深刻地影响着我练习训练的效率,并最终限制着我未来的发展极限。希望在之后的继续训练中能得到改善。