北郵 python 問題 A: 頁面置換
阿新 • • 發佈:2020-10-17
題目描述
在瀏覽器進行頁面切換時,為了加速開啟之前開啟過的頁面,有一種常用的演算法,叫做LRU(Least Recently Used)演算法。
某裝置能夠記錄至多n
每次訪問頁面A時,如果頁面A不在被記錄的頁面中,就需要一定時間來載入這個頁面。
例如:
某裝置最多紀錄3個不同頁面,若頁面開啟順序先後依次為1,2,3,4,2,則開啟編號為4 的頁面時,編號為1 的頁面將被淘汰.第二次開啟編號為2的頁面時,並不會淘汰任何頁面。
若頁面開啟順序依次為1,2,3,1,4,在開啟編號為4的頁面時,最後一次訪問時間最早的是2號頁面,因此會在記錄中淘汰2號而記錄4號。
現有一個最多記錄n個不同頁面的裝置,並給出頁面(以數字編號)的訪問順序。
輸入
第一行輸入兩個整數n,m(1≤n,m≤500)
接下來一行輸入m個整數,描述頁面訪問順序,保證頁面編號是[1,m]內的正整數。
輸出
第一行輸出一個整數,表示載入的次數。
第二行輸出n個整數,用空格隔開,表示全部訪問結束後,裝置記錄的頁面編號(編號按照升序輸出)。資料保證訪問過的不同頁面總數大於等於n 。
注:輸出的每一行最後不要輸出多餘的空格,否則系統會判為格式錯誤。
樣例輸入 Copy
輸入樣例1
3 5
1 2 3 4 1
輸入樣例2
3 5
1 2 3 1 4
輸入樣例3
3 5
1 2 2 2 3
樣例輸出 Copy
輸出樣例1
5
1 3 4
輸出樣例2
4
1 3 4
輸出樣例3
3
1 2 3
思路
按照計網中報文的佇列實現即可