1. 程式人生 > >7-6 列車排程 (25 分)

7-6 列車排程 (25 分)

火車站的列車排程鐵軌的結構如下圖所示。

兩端分別是一條入口(Entrance)軌道和一條出口(Exit)軌道,它們之間有N條平行的軌道。每趟列車從入口可以選擇任意一條軌道進入,最後從出口離開。在圖中有9趟列車,在入口處按照{8,4,2,5,3,9,1,6,7}的順序排隊等待進入。如果要求它們必須按序號遞減的順序從出口離開,則至少需要多少條平行鐵軌用於排程?

輸入格式:

輸入第一行給出一個整數N (2 ≤ N ≤10​5​​),下一行給出從1到N的整數序號的一個重排列。數字間以空格分隔。

輸出格式:

在一行中輸出可以將輸入的列車按序號遞減的順序調離所需要的最少的鐵軌條數。

輸入樣例:

9
8 4 2 5 3 9 1 6 7

輸出樣例:

4

 最初思路:弄一個Vector二維陣列,j=0,把第一個放進v[0]中,然後第二個看是不是比v[0]最後一個元素小,小的話就放進v[0]。                      不小的話j++,放進v[j]。再輸入元素,從v[0]......v[j],判斷哪個的最後一個元素小於我們輸入的元素,就放進去,沒有                      小於的   就j++,放到v[j]中;最後輸出j+1;以為裡面套了一層迴圈,時間複雜度為O(n^2);超時了;所以,就找大牛代                      碼看,發現用的是set;

解題思路:
        先將一個數插入進set容器中,set容器預設從小到大(自動排序),在依次進行每個數的輸入,如果輸入的數比當前set容器中的最          後一個數小,刪除set容器中第一個大於輸入數的值,在將輸入數進行插入,重新排序後,輸入的值就代替了刪除的值,依次          迴圈往復,進行到結尾 。

#include<iostream>
#include<set>
using namespace std;
int main()
{
    int num,n;
    cin>>n;
    set<int> s;
//    set<int>::iterator it;
    for(int i=0;i<n;i++)
    {
        cin>>num;
        if(s.upper_bound(num)!=s.end())
            s.erase(s.upper_bound(num));
        s.insert(num);
//        for(it=s.begin();it!=s.end();it++){
//            cout<<*it<<" ";
//        }
//        cout<<endl;
    }
    cout<<s.size()<<endl;
    return 0;
}

看一下中間測試(吧上面的註釋取消,既能看到每步的情況) ;

相關推薦

7-6 列車排程 25

火車站的列車排程鐵軌的結構如下圖所示。 兩端分別是一條入口(Entrance)軌道和一條出口(Exit)軌道,它們之間有N條平行的軌道。每趟列車從入口可以選擇任意一條軌道進入,最後從出口離開。在圖中有9趟列車,在入口處按照{8,4,2,5,3,9,1,6,7}的順序排隊

第三章 迴圈佇列及線性結構綜合-計算機17級 7-2 列車排程 25

7-2 列車排程 (25 分) 火車站的列車排程鐵軌的結構如下圖所示。 兩端分別是一條入口(Entrance)軌道和一條出口(Exit)軌道,它們之間有N條平行的軌道。每趟列車從入口可以選擇任意一條軌道進入,最後從出口離開。在圖中有9趟列車,在入口處按照{8,4,2,

PTA 7-2 列車排程25 思路+超時程式碼+正確程式碼

火車站的列車排程鐵軌的結構如下圖所示。 兩端分別是一條入口(Entrance)軌道和一條出口(Exit)軌道,它們之間有N條平行的軌道。每趟列車從入口可以選擇任意一條軌道進入,最後從出口離開。在圖中有9趟列車,在入口處按照{8,4,2,5,3,9,1,6,7}的順序

7-10 列車排程25

題目連結 火車站的列車排程鐵軌的結構如下圖所示。 兩端分別是一條入口(Entrance)軌道和一條出口(Exit)軌道,它們之間有N條平行的軌道。每趟列車從入口可以選擇任意一條軌道進入,最後從出

7-7 列車排程 25

7-7 列車排程 (25 分) 火車站的列車排程鐵軌的結構如下圖所示。 兩端分別是一條入口(Entrance)軌道和一條出口(Exit)軌道,它們之間有N條平行的軌道。每趟列車從入口可以選擇任意一條軌道進入,最後從出口離開。在圖中有9趟列車,在入口處按照{8,4,2,

7-7 列車排程 25 貪心策略 + 二分查詢

題目大意 兩端分別是一條入口(Entrance)軌道和一條出口(Exit)軌道,它們之間有N條平行的軌道。每趟列車從入口可以選擇任意一條軌道進入,最後從出口離開。在圖中有9趟列車,在入口處按照{8,4,2,5,3,9,1,6,7}的順序排隊等待進入。如果要求它們

列車排程 25

火車站的列車排程鐵軌的結構如下圖所示。 兩端分別是一條入口(Entrance)軌道和一條出口(Exit)軌道,它們之間有N條平行的軌道。每趟列車從入口可以選擇任意一條軌道進入,最後從出口離開。在圖中有9趟列車,在入口處按照{8,4,2,5,3,9,1,6,7}

7-12 樹種統計25

lib pop pen 整數 text -s asp pri 正整數 隨著衛星成像技術的應用,自然資源研究機構可以識別每一棵樹的種類。請編寫程序幫助研究人員統計每種樹的數量,計算每種樹占總數的百分比。 輸入格式: 輸入首先給出正整數N(≤10?5??),隨

7-19 PAT Judge25

scrip use == minus then sel inpu style mit The ranklist of PAT is generated from the status list, which shows the scores of the submi

一道老坑爹的題第三章棧作業題2-棧及其應用-計算機17級 7-1 表示式轉換 25

 7-1 表示式轉換 (25 分) 算術表示式有字首表示法、中綴表示法和字尾表示法等形式。日常使用的算術表示式是採用中綴表示法,即二元運算子位於兩個運算數中間。請設計程式將中綴表示式轉換為字尾表示式。 輸入格式: 輸入在一行中給出不含空格的中綴表示式,可

Data Structures and Algorithms (English) - 6-1 Deque25

題目連結:點選開啟連結   題目大意:注意這裡的 Last 相當於 Pre 的意思。   解題思路:略。   AC 程式碼 Deque CreateDeque() { PtrToNode nd=(PtrToNode)malloc(

7-3 括號匹配 25

給定一串字元,不超過100個字元,可能包括括號、數字、字母、標點符號、空格,程式設計檢查這一串字元中的( ) ,[ ],{ }是否匹配。 輸入格式: 輸入在一行中給出一行字串,不超過100個字元,可能包括括號、數字、字母、標點符號、空格。 輸出格式: 如果括號配對,輸出yes,否

7-2 List Leaves 25

  Given a tree, you are supposed to list all the leaves in the order of top down, and left to right. Input Specification: Each input file c

7-9 旅遊規劃 25 Dijkstra演算法

題意:   思路:單源最短路問題,Dijkstra演算法搞定就可以了,因為要找出最便宜的最短路,所以需要在更新最短距離的時候加一個條件(即當最短距離相等的時候,如果該路徑的花費更小,就更新最小花費)就可以了。之前自己學的最短路的水平也就僅限於模板題的水平,現在可以在條件

7-2 朋友圈 25

7-2 朋友圈 (25 分) 某學校有N個學生,形成M個俱樂部。每個俱樂部裡的學生有著一定相似的興趣愛好,形成一個朋友圈。一個學生可以同時屬於若干個不同的俱樂部。根據“我的朋友的朋友也是我的朋友”這個推論可以得出,如果A和B是朋友,且B和C是朋友,則A和C也是朋友

7-17 奧運排行榜 25

題目: 思路:針對四種排序方法構建四個結構體,按四種排序排完之後,把結果彙總到代表國家的一個結構體中。然後就是查詢就是了。排序規則可通過下面的例子瞭解一下: 序列:g[0] = 1,g[1] = 2,g[2] = 2, g[3] = 3; 排名:1         

7-24 樹種統計 25

隨著衛星成像技術的應用,自然資源研究機構可以識別每一棵樹的種類。請編寫程式幫助研究人員統計每種樹的數量,計算每種樹佔總數的百分比。 輸入格式: 輸入首先給出正整數N(≤10​5​​),隨後N行,每行給出

7-31 朋友圈 25 (並查集)

7-31 朋友圈 (25 分) 某學校有N個學生,形成M個俱樂部。每個俱樂部裡的學生有著一定相似的興趣愛好,形成一個朋友圈。一個學生可以同時屬於若干個不同的俱樂部。根據“我的朋友的朋友也是我的朋友”這個推論可以得出,如果A和B是朋友,且B和C是朋友,則A和C也是朋友。請編寫程

7-1 悄悄關注 25 ---排序Java容器實現

7-1 悄悄關注 (25 分) 新浪微博上有個“悄悄關注”,一個使用者悄悄關注的人,不出現在這個使用者的關注列表上,但系統會推送其悄悄關注的人發表的微博給該使用者。現在我們來做一回網路偵探,根據某人的關注列表和其對其他使用者的點贊情況,扒出有可能被其悄悄關注的人。 輸

PTA 7-7 Windows訊息佇列25

7-7 Windows訊息佇列(25 分) 訊息佇列是Windows系統的基礎。對於每個程序,系統維護一個訊息佇列。如果在程序中有特定事件發生,如點選滑鼠、文字改變等,系統將把這個訊息加到隊列