欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++解決業(yè)務(wù)辦理時(shí)間問題示例解析

 更新時(shí)間:2022年12月29日 11:21:27   作者:heart_6662  
這篇文章主要為大家介紹了C++解決業(yè)務(wù)辦理時(shí)間問題示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

正文

首先,我們需要定義一個(gè)數(shù)組time[3]來保存每個(gè)窗口辦理業(yè)務(wù)的時(shí)間。然后,我們依次遍歷每一位客戶,每當(dāng)有一個(gè)客戶需要辦理業(yè)務(wù)時(shí),我們就在time數(shù)組中選擇最少的時(shí)間辦理業(yè)務(wù)的窗口,并把該客戶辦理業(yè)務(wù)的時(shí)間加入time數(shù)組中對(duì)應(yīng)的窗口。

代碼如下

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
    int n;
    cin >> n; // 輸入客戶數(shù)量
    int time[3] = {0}; // 定義并初始化time數(shù)組
    for (int i = 1; i <= n; i++)
    {
        int t;
        cin >> t; // 輸入客戶i辦理業(yè)務(wù)的時(shí)間
        // 選擇最少的時(shí)間辦理業(yè)務(wù)的窗口
        int minTime = min(time[0], min(time[1], time[2]));
        if (time[0] == minTime)
        {
            time[0] += t; // 把客戶i辦理業(yè)務(wù)的時(shí)間加入窗口1的時(shí)間
        }
        else if (time[1] == minTime)
        {
            time[1] += t; // 把客戶i辦理業(yè)務(wù)的時(shí)間加入窗口2的時(shí)間
        }
        else
        {
            time[2] += t; // 把客戶i辦理業(yè)務(wù)的時(shí)間加入窗口3的時(shí)間
        }
    }
    // 輸出最短時(shí)間
    cout << min(time[0], min(time[1], time[2])) << endl;
    return 0;
}

在這個(gè)代碼中,我們使用了C++的min函數(shù)來選擇time數(shù)組中最少的時(shí)間辦理業(yè)務(wù)的窗口,然后將該客戶辦理業(yè)務(wù)的時(shí)間加入time數(shù)組中對(duì)應(yīng)的窗口。最后,我們使用min函數(shù)再次計(jì)算time數(shù)組中的最小值,并輸出。

這個(gè)算法的時(shí)間復(fù)雜度是O(n),可以在很短的時(shí)間內(nèi)解決問題。

測試算法正確性

我們可以通過下面的代碼來測試這個(gè)算法的正確性:

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
    int n;
    cin >> n; // 輸入客戶數(shù)量
    int time[3] = {0}; // 定義并初始化time數(shù)組
    for (int i = 1; i <= n; i++)
    {
        int t;
        cin >> t; // 輸入客戶i辦理業(yè)務(wù)的時(shí)間
        // 選擇最少的時(shí)間辦理業(yè)務(wù)的窗口
        int minTime = min(time[0], min(time[1], time[2]));
        if (time[0] == minTime)
        {
            time[0] += t; // 把客戶i辦理業(yè)務(wù)的時(shí)間加入窗口1的時(shí)間
        }
        else if (time[1] == minTime)
        {
            time[1] += t; // 把客戶i辦理業(yè)務(wù)的時(shí)間加入窗口2的時(shí)間
        }
        else
        {
            time[2] += t; // 把客戶i辦理業(yè)務(wù)的時(shí)間加入窗口3的時(shí)間
        }
    }
    // 輸出最短時(shí)間
    cout << min(time[0], min(time[1], time[2])) << endl;
    return 0;
}

這樣子我們可以輸入5位客戶的辦理業(yè)務(wù)的時(shí)間,然后根據(jù)我們前面提到的貪心算法的思路,選擇最少的時(shí)間辦理業(yè)務(wù)的窗口,并將該客戶辦理業(yè)務(wù)的時(shí)間加入time數(shù)組中對(duì)應(yīng)的窗口。最后,我們輸出time數(shù)組中的最小值,就可以得到最短的辦理業(yè)務(wù)的時(shí)間。

例如,如果我們輸入的辦理業(yè)務(wù)的時(shí)間分別為3、5、2、4、1,那么最終time數(shù)組的值分別為10、9、6,最短的辦理業(yè)務(wù)的時(shí)間就是6。

這個(gè)算法的正確性是基于貪心算法的思路,每次都選擇最少的時(shí)間辦理業(yè)務(wù)的窗口,最終可以得到最優(yōu)的解。

以上就是C++解決業(yè)務(wù)辦理時(shí)間問題示例解析的詳細(xì)內(nèi)容,更多關(guān)于C++ 業(yè)務(wù)辦理時(shí)間問題的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用MinGW使Windows通過gcc實(shí)現(xiàn)C或C++程序本地編譯執(zhí)行的方法

    使用MinGW使Windows通過gcc實(shí)現(xiàn)C或C++程序本地編譯執(zhí)行的方法

    這篇文章主要介紹了使用MinGW使Windows通過gcc實(shí)現(xiàn)C或C++程序本地編譯執(zhí)行的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Cocos2d-x學(xué)習(xí)筆記之世界坐標(biāo)系、本地坐標(biāo)系、opengl坐標(biāo)系、屏幕坐標(biāo)系

    Cocos2d-x學(xué)習(xí)筆記之世界坐標(biāo)系、本地坐標(biāo)系、opengl坐標(biāo)系、屏幕坐標(biāo)系

    這篇文章主要介紹了Cocos2d-x學(xué)習(xí)筆記之世界坐標(biāo)系、本地坐標(biāo)系、opengl坐標(biāo)系、屏幕坐標(biāo)系,本文用代碼和注釋講解了Cocos2d-x中的坐標(biāo)體系,需要的朋友可以參考下
    2014-09-09
  • 最小生成樹算法之Prim算法

    最小生成樹算法之Prim算法

    這篇文章主要講解了普里姆算法(Prim算法),圖論中的一種算法,可在加權(quán)連通圖里搜索最小生成樹,需要的朋友可以參考下
    2015-07-07
  • 一文帶你學(xué)習(xí)C++中的派生機(jī)制

    一文帶你學(xué)習(xí)C++中的派生機(jī)制

    C++是一門面向?qū)ο蟮木幊陶Z言,其中的派生機(jī)制是其重要的面向?qū)ο筇匦灾?。本文我們就來詳?xì)地學(xué)習(xí)一下C++中的派生機(jī)制的相關(guān)知識(shí)吧
    2023-04-04
  • C語言實(shí)現(xiàn)Floyd算法

    C語言實(shí)現(xiàn)Floyd算法

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)Floyd算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • VisualStudio2022制作多項(xiàng)目模板及Vsix插件的實(shí)現(xiàn)

    VisualStudio2022制作多項(xiàng)目模板及Vsix插件的實(shí)現(xiàn)

    本文主要介紹了VisualStudio2022制作多項(xiàng)目模板及Vsix插件的實(shí)現(xiàn),文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • c語言:金幣陣列的問題

    c語言:金幣陣列的問題

    本文介紹了關(guān)于c語言:金幣陣列的問題,需要的朋友可以參考一下
    2013-03-03
  • C語言接口與實(shí)現(xiàn)方法實(shí)例詳解

    C語言接口與實(shí)現(xiàn)方法實(shí)例詳解

    這篇文章主要介紹了C語言接口與實(shí)現(xiàn)方法,包括接口的概念、實(shí)現(xiàn)方法及抽象數(shù)據(jù)類型等,并配合實(shí)例予以說明,需要的朋友可以參考下
    2014-09-09
  • C++私有繼承與EBO深入分析講解

    C++私有繼承與EBO深入分析講解

    這篇文章主要介紹了C++私有繼承,在私有繼承當(dāng)中,基類的公有成員和保護(hù)成員都會(huì)成為派生類的私有成員。這意味著基類的方法都會(huì)被private關(guān)鍵字描述,我們可以在派生類中使用它,但類對(duì)象無法直接調(diào)用,下面來看看詳細(xì)內(nèi)容吧
    2022-08-08
  • C語言菜鳥基礎(chǔ)教程之for循環(huán)

    C語言菜鳥基礎(chǔ)教程之for循環(huán)

    c語言中的for循環(huán)語句使用最為靈活,不僅可以用于循環(huán)次數(shù)已經(jīng)確定的情況,而且可以用于循環(huán)次數(shù)不確定而只給出循環(huán)結(jié)束條件的情況,它完全可以代替while語句.
    2017-10-10

最新評(píng)論