先摆上最后成绩:西北赛区复赛18名 队名:心有多大路就有多宽

现在离比赛结束已经快一个月过去了,成绩不佳,老师那边也有活要忙,赛后总结就耽搁下来了。最近闲下来,所以写一写总结,当作是个留念吧。

队伍名字我觉得很棒,很符合题意,也很有哲学气息。我想出来的,哈哈,先自我吹捧一下。缘由是一开始小心翼翼发车怕堵车,可是真正发车的时候才发现随机发很多车都能不堵车,有感而发一句心有多大路就有多宽,名字也就由此而来。

本次华为的比赛,我总结一下大致过程就是:阅读理解大赛->逆向工程大赛->随缘发车大赛+调参大赛
当然这后面两项是对于我们这种菜鸡队伍来说 ,我想真正好的算法思路是不会主要依靠靠调参和随缘来提高自身成绩的。据说冠军队伍咕咕咕,复赛就调了两次,就是最终成绩了,吊打任何人。

这次比赛的题目的复杂程度对于我这种语文渣渣来说简直是灾难,还好有个爹是语文老师的队友,题目才得以完那掌握意思。

这次比赛,我被复现判题器搞趴了,初赛肝了一周搞出来一个判题器还不能完那和官方一致,醉了。好歹最后苟进复赛。
复赛官方给了详细流程图,肝了几天终于肝出一个和官方一致的判题器,结果最后比赛的时候版本搞错了,导致差点没成绩。具体我就不说了,我队友万字长文总结,待会附上链接。

这次比赛我们队伍所有判题器和程序框架编写都是我完成的,主要提高了自己的c++编程能力,不过也看到了和大佬们的差距(大佬的判题器的代码效率是我们的几十倍,也是导致我们从来都不考虑利用判题器做反馈做回溯类的算法的原因),总之,好好学习天天向上吧。

废话这么多,下面还是简要的说一下我们的方案吧
未加预置车辆可修改路径的施行方案
第一步:对全图用迪杰斯特拉求最短路径,并由此得到非预置车辆的最短路径。

第二步:对全图所有非预置车的路径进行分析:
1)得到过载路口:统计出通过每个路口的车数量,取前10%的路口作为过载路口;
2)得到需要调整的车辆:对过载路口的车辆(路径包含该路口的),分别统计其经过的过载路口数量,并降序排列,取前1/3的车辆进行修改路径。

第三步:路径修改:去除过载路口重新生成图,用迪杰斯特拉算法重新生成最优路径。对需要修改路径的车进行可行性判断,即判断出发点和目标点是否在被剔除的路口内,以及重新生成的路径长度是否无穷远(即走不通),如果未在剔除路口之列且新路径能走通则修改该路径,否则对该车不做任何修改。

第四步:
安排装车:对所有的车按照其出发路口,分别放置到对应的路口,然后分别按照车辆优先级>速度>路径花费时间的主次顺序排序(优先级大的在前,速度快的在前,花费时间短的在前)。
安排发车:按照路口顺序,在装好车(排好序)的车库里,依次取首个车(这样让发车分布更均匀一些),放到发车数组中。
发车:大体是按照一定调度时间间隔发一批车的思维发车,在发每一辆车的时候判断当前是否处于预置车辆稠密发车时间区间,如果是的话,则发车时尽量改变路径(去除预置车辆的过载路口重新生成最优路径),如果不是的话则正常发车(不改路径)。

关于预置车辆稠密分析的函数:统计预置车辆在哪些时间片上发车,并统计该时间片发车的数量。然后设一个发车数量的阈值(超过该预置判断为稠密时间点),接着判断相邻稠密时间点的间隔,如果其小于某个阈值则判断两个时间点之间的时间片都为稠密时间区间,否则两个时间点之间不为稠密时间区间。这样做的好处是可以自动适应不同数据,因为预置车辆很难和后面没有预置车辆一样发很多车。

关于预置车辆过载点分析函数:同第二步的1)

关于DJ的路权函数:len_weight =length*50/((speedlim+15)rwidth);长度50/(道路限速+15)*路宽;
同时我们对单行道的路权值额乘以15,以确保车辆尽量少走单行道(不知道为什么,就是对提分很有帮助,可能我们的方案的单行道的地方容易堵吧)

加预置车辆可修改方案
该方案由于比赛时间限制,未实践,但感觉思路可行。
具体:对预置车辆统计其过载路口,然后对于每辆预置车辆统计其路径和过载路口的重合数目,对预置车辆按照路径长度 >重合路口数目>优先级>速度的主次顺序排序(可改变其中的顺序试试),取10%的车用DJ算法重新生成最优路径。 该思路是主要是考虑到预置车辆的车可能路径故意绕远,这样挑选车来修改路径。


方案如上,github:https://github.com/TimeChi/CodeCraft2019
具体比赛过程,我队友写的很详细,有意可以看看他的文章:
队友万字长文:https://zhuanlan.zhihu.com/p/64015069

2019华为软件精英挑战赛赛后总结相关推荐

  1. 2019华为软件精英挑战赛分享

    目录 一.写在前面的话 二.语言选择 三.判题器实现 四.回溯解死锁 四.发车时间设计 五.寻路设计 六.写在最后的话 一.写在前面的话 第一次参加软件精英挑战赛,复赛最后打了第六名,队名是行车不规范 ...

  2. 2019华为软件精英挑战赛参赛心得

    1. 说在开头: 我们是来自江山赛区的[我是一条大锦鲤大锦鲤我们不会死锁呀死锁呀]队伍,这个队名不止一次被我队友调侃为沙吊/哈哈哈,开头我不得不舔一波华为公司,华为公司对这个比赛准备的真的很好,很贴心 ...

  3. 2019华为软件精英挑战赛比赛经验分享(初赛,复赛,决赛)

    比赛成果: 初赛(700+):西北赛区第3. 复赛(32):西北赛区第3.(华为手机v20,华为面试绿卡,西北赛区二等奖,小礼物若干) 决赛(32):全国16强,具体排名13.(没有奖金,纪念品若干, ...

  4. 2019华为软件精英挑战赛

    大致思路: 初步考虑是,不考虑拥堵,用Dijkstra算每辆车的最短路径,然后直接按照规则跑! 先这么着写一个出来,之后再加入拥堵的因素,并根据即时性,综合此时的路况拥堵和路径长短,让每辆车在行进到每 ...

  5. 2019华为软件精英挑战赛总结(附代码)

    初赛江山赛区十六名然后时间冲突复赛放弃了.(放弃了免费旅游qaq!) 本来一开始就想写一个总结 因为之前搜dalao们的博客的时候很少有江山赛区的总结 复赛结束也有一段时间了 这段时间acm比赛有点多 ...

  6. 华为软件精英挑战赛2015

    华为软件精英挑战赛赛题 点击链接加入群[华为精英比赛]:http://jq.qq.com/?_wv=1027&k=ZSJmVU http://t.cn/RArNwTL 1 编程任务 编写牌手程 ...

  7. # 2021华为软件精英挑战赛C/C++——build.sh/build_and_run.sh/CodeCraft_zip.sh注释

    2021华为软件精英挑战赛C/C++--build.sh/build_and_run.sh/CodeCraft_zip.sh注释 1.build.sh #!/bin/bashSCRIPT=$(read ...

  8. 2021华为软件精英挑战赛(附赠线下判题器链接)——经历

    2021华为软件精英挑战赛(附赠线下判题器链接)--经历 1.题目解析 本次赛题源自现实的互联网企业面临的问题,怎样购买与部署服务器最便宜! 服务器:不相同型号的服务器有着不同的CPU与不同的内存,每 ...

  9. 2023华为软件精英挑战赛,探寻软件人才与科技创新的最优解

    作者 | 曾响铃 文 | 响铃说 今天,软件行业正呈现出江河入海一般的大汇流趋势. 一方面是技术的汇流,诸如人工智能等前沿技术与软件行业的深度融合,正全面颠覆软件产品的开发模式和服务逻辑. 另一方面则 ...

最新文章

  1. 在Unity中制作4种不同的游戏
  2. 扎克伯格AR野心:下个十年,远程「闪现」,不出家门跑到朋友家聊天
  3. 技术人员如何转型为产品经理
  4. 实例教程五:采用SharedPreferences保存用户偏好设置参数
  5. ubuntu python设置utf-8
  6. pycharm 格式化代码
  7. 约瑟夫环java链表_java使用链表实现约瑟夫环
  8. 中科院计算机跨专业考研,2015考研复试:往届生和跨专业考生
  9. JSTL 标签库详细介绍资料 .
  10. MySQL优化器cost计算
  11. for循环批量写文件 shell_shell之for循环的3个简单脚本
  12. linux如何获取网卡计数信息,Linux下如何获取网卡信息
  13. 整数奇偶排序(信息学奥赛一本通-T1181)
  14. 学生成绩管理 php,php学生成绩管理系统(模板)
  15. JDK9.0.4安装配置
  16. 【转】Java 中正确使用 hashCode 和 equals 方法
  17. 基金销售系统和TA系统
  18. js摇号程序_车管所怎么摇号流程及查询
  19. 【速成MSP430f149】电赛期间学习MSP430f149笔记
  20. 《GTA5》揭秘游戏背后的故事

热门文章

  1. Nginx 高可用秘籍
  2. WinExec(exePath,sw_XX) 调用外部程序详解
  3. 关注中国移动互联网市场:海外移动互联企业图谋中国 喜大市场忧大差异
  4. JavaEye范凯谈唐骏造假事件
  5. 【稳定性day10】美团MySQL的高可用架构 - 对标业内的一些解决方案
  6. java 电子相册_[Java教程]电子相册特效
  7. Python操作Word的入门教程
  8. Python实现抖音表白软件
  9. unittest的基本使用
  10. STM32笔记——定时器输入捕获功能(测量PWM的频率和占空比)