• 第二次作业-编程


    电梯调度问题

      想不到更优的算法+数据小=穷竭搜索。GitHub存储库

      最开始想用5个for语句把电梯移动的地点进行全排列,发现接到人以后电梯又会新增新的要停靠的楼层。然后想到用深搜。

    思路

      开始时把5人原来的楼层设置为目标楼层。

      从当前楼层开始:选择一个目标楼层(可以是当前楼层),去目标楼层接人或者放人。

         如果是放人:计算移动到目标楼层的耗时,记录下放下的人出电梯的时刻。更新时刻再次移动。

         如果是接人:计算移动到目标楼层的耗时,新增一个目标楼层,更新时刻(选择请求出现时刻和当前时候更晚的那个),再次移动。

      如此重复,直到所有目标楼层都到达过。判断耗时。更新最小耗时和移动方案。

      这个算法时间复杂度非常高。

    测试数据

    0 1 0
    0 2 0
    0 4 0
    0 6 0
    0 8 0
    
    1 2 3
    4 5 6
    7 8 9
    0 1 2
    3 4 5
    10 1 0
    7 8 0
    9 4 7
    100 4 5
    6 0 4
    32 6 4
    7 9 0
    4 5 0
    1000 6 5
    1 2 3
    0 1 0
    5 5 6
    7 6 8
    3 1 4
    7 9 7
    0 0 1

     手算了第一组数据,是对的。为什么不算别的组?

    代码行数 bug数 耗时
       84        >=10   >=5h

    Pintia小作业

  • 相关阅读:
    css
    bootstrap
    在线小工具
    文档工具-Markdown
    js
    棋盘问题(深搜,统计)
    ****Curling 2.0(深搜+回溯)
    POJ 2676 Sudoku(深搜)
    POJ 2488 A Knight's Journey(深搜+回溯)
    ural 1104. Don’t Ask Woman about Her Age
  • 原文地址:https://www.cnblogs.com/Ike-shadow/p/8442614.html
Copyright © 2020-2023  润新知