1 条题解

  • 0
    @ 2030-3-27 18:02:51

    【深基2.例12】上学迟到

    解题思路

    步行所需分钟为向上取整 s/v,再加 10 分钟。用 8:00 对应的 480 分钟减总耗时,若跨到前一天则加 1440,输出时分。

    正确性说明

    最少整分钟步行时间是 (s+v-1)/v,额外 10 分钟固定。到达时刻减耗时就是最晚出门时刻;按一天取模得到时钟表示。

    易错点

    需要向上取整;可能前一天出门;小时和分钟都补足两位。

    复杂度

    时间 O(1),空间 O(1)。

    参考代码(C++11)

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        int s, v;
        cin >> s >> v;
        int t = (480 - (s + v - 1) / v - 10) % 1440;
        if (t < 0)
            t += 1440;
        cout << setfill('0') << setw(2) << t / 60 << ":" << setw(2) << t % 60 << "\n";
        return 0;
    }
    
    • 1

    信息

    ID
    31
    时间
    1000ms
    内存
    125MiB
    难度
    进阶
    标签
    递交数
    1
    已通过
    1
    上传者