首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

HDU 1008 電梯調度:基礎模擬題詳解

     編輯:關於C

問題描述

輸入多行,每行首數 n 為停靠樓層數,隨後 n 個樓層號。電梯從 0 樓開始:上一層 6 秒,下一層 4 秒,停靠 5 秒。電梯無需返回 0 樓。求總耗時。

解法邏輯

  • 維護當前樓層 curr(初始 0)。
  • 遍歷目標樓層 stop[i]:
  • 若 stop[i] > curr:time += (stop[i]-curr)*6
  • 若 stop[i] < curr:time += (curr-stop[i])*4
  • 每站加 5 秒停靠,更新 curr = stop[i]。
  • n=0 結束輸入。

AC 代碼

#include 
#define MAXN 100

int main() {
    int n, stop[MAXN+1], i;
    int curr, total;
    while (scanf("%d", &n) != EOF) {
        if (n == 0) break;
        for (i=0; i curr) total += (stop[i] - curr) * 6;
            else total += (curr - stop[i]) * 4;
            total += 5;
            curr = stop[i];
        }
        printf("%d\n", total);
    }
    return 0;
}

基礎模擬題,注意輸入結束條件與上下樓時間差異。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved