- 对于所有车辆的最短路径求解,数据量小但计算量大,可以使用打表法,一次dijkstra可以得到第i个节点到其他n-1个节点的最短路径,运行n次dijkstra即可得到任意两点间最短路径。比赛中节点数n一直在200以内,而车辆数最少也要10000。
- 对于读入的road、cross、car的信息,尤其是car,数据量极大,定义在普通函数solution内部或类成员函数内部会引发栈空间内存不足,此时可以进行扩栈操作https://blog.csdn.net/f_zyj/article/details/51467501,或者直接设置成全局变量,分配在静态堆上。
- 输入输出时,注意每行的缓冲数组长度是否足够。同理,注意road、cross、car三个数组开辟的空间是否足够。
- 尽量避免头文件互相包含,一定要互相包含时,注意#include的顺序,避免出现重定义。
- 需要灵魂调参的参数尽量放在一起,可以考虑使用宏定义
- 对于结构体型参,使用引用或指针传参可提高效率
- 降低代码不同功能之间的耦合程度,每次修改判题器,可视化都要跟着改一次,很烦。接下来抽空研究一下版本控制
暂时想到这么多
华为软挑2019总结
最新推荐文章于 2022-03-29 23:16:49 发布