【PAT甲级】1008 Elevator (20分)

    技术2022-07-12  74

    解题过程的小记录,如有错误欢迎指出。

    难度:一星(简单题,简单程度大概在甲级题里面排得上top3)

    小导航~

    题目分析注意点 我的解题过程思路bug代码 dalao的代码借鉴点

    题目分析

    给出电梯上行、下行和每层的停留时间,以及电梯的行驶轨迹,求出送完所有客人的总时间

    注意点

    如果下一请求的楼层为当前楼层的情况?(当等于的时候要多停留5s,我的没有考虑,都可以过【柳神和晴神的代码逻辑把每一层停留放入循环体内=>不管是否与上层相同都会加入5s

    我的解题过程

    思路

    在输入n(总请求数量)后立即计算出总共的停留时间,再直接在输入请求队列时,开一个变量用于保存当前所在的楼层,和输入的楼层进行比较,计算上行还是下行(这样就不需要另外开一个数列来计算了),并计算出需要的时间加入结果变量

    bug

    代码

    #include<iostream> using namespace std; int main() { int ans = 0; int n; cin >> n; ans += 5 * n;//先计算出总的停留时间 int presentfloor = 0; for (int i = 0; i < n; i++) { int nextfloor; cin >> nextfloor; int move = nextfloor - presentfloor; if (move > 0) { ans += 6 * move; } else { ans -= 4 * move;//为负数时就累减 } presentfloor = nextfloor; } cout << ans; return 0; }

    dalao的代码

    全部代码因版权原因不放出来,大家可以自行去柳神博客购买或者参考晴神的上机笔记~

    借鉴点

    暂无

    Processed: 0.016, SQL: 9