华为软挑2019总结

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值