九度OJ 1082 清華大學2023年機試

2021-06-28 05:38:09 字數 1234 閱讀 3919

題目描述:使用**伺服器能夠在一定程度上隱藏客戶端資訊,從而保護使用者在網際網路上的隱私。我們知道n個**伺服器的ip位址,現在要用它們去訪問m個伺服器。這 m 個伺服器的 ip 位址和訪問順序也已經給出。系統在同一時刻只能使用乙個**伺服器,並要求不能用**伺服器去訪問和它 ip位址相同的伺服器(不然客戶端資訊很有可能就會被洩露)。在這樣的條件下,找到一種使用**伺服器的方案,使得**伺服器切換的次數盡可能得少。

輸入:每個測試資料報括 n + m + 2 行。

第 1 行只包含乙個整數 n,表示**伺服器的個數。

第 2行至第n + 1行每行是乙個字串,表示**伺服器的 ip位址。這n個 ip位址兩兩不相同。

第 n + 2 行只包含乙個整數 m,表示要訪問的伺服器的個數。

第 n + 3 行至第 n + m + 2 行每行是乙個字串,表示要訪問的伺服器的 ip 位址,按照訪問的順序給出。

每個字串都是合法的ip位址,形式為「***.yyy.zzz.www」,其中任何一部分均是0–255之間的整數。輸入資料的任何一行都不包含空格字元。

其中,1<=n<=1000,1<=m<=5000。

輸出:可能有多組測試資料,對於每組輸入資料, 輸出資料只有一行,包含乙個整數s,表示按照要求訪問伺服器的過程中切換**伺服器的最少次數。第一次使用的**伺服器不計入切換次數中。若沒有符合要求的安排方式,則輸出-1。

樣例輸入:

3

166.111.4.100

162.105.131.113

202.112.128.69

672.14.235.104

166.111.4.100

207.46.19.190

202.112.128.69

162.105.131.113

118.214.226.52

樣例輸出:

1

方法一:貪心法

如果**伺服器只有乙個,如果要訪問的**伺服器中有他自身,那麼列印-1,否則列印0

如果**伺服器有n個,n>1,計算每個**伺服器能夠在給出的訪問序列中訪問的伺服器個數,記錄最大值max,如果max小於要訪問的伺服器個數,說明此時需要切換伺服器,切換次數++,並以此為起點重複上述步驟直到訪問完伺服器。

方法二:使用關聯容器map和set

這是看得別人的**學習來的

清華大學2023年機試 遞推數列 1081

題目描述 給定a0,a1,以及an p a n 1 q a n 2 中的p,q。這裡n 2。求第k個數對10000的模。輸入 輸入包括5個整數 a0 a1 p q k。輸出 第k個數a k 對10000的模。樣例輸入 20 1 1 14 5 樣例輸出 8359 解題思路 首先,第一反應是用遞迴解題,...

清華大學2023年機試 進製轉換 1080

題目描述 將m進製的數x轉換為n進製的數輸出。輸入 輸入的第一行包括兩個整數 m和n 2 m,n 36 下面的一行輸入乙個數x,x是m進製的數,現在要求你將m進製的數x轉換成n進製的數輸出。輸出 輸出x的n進製表示的數。樣例輸入 16 10 f樣例輸出 15解題思路 就是進製轉換,但是需要注意的是資...

清華大學2023年機試 最小郵票數 1209

題目描述 有若干張郵票,要求從中選取最少的郵票張數湊成乙個給定的總值。如,有1分,3分,3分,3分,4分五張郵票,要求湊成10分,則使用3張郵票 3分 3分 4分即可。輸入 有多組資料,對於每組資料,首先是要求湊成的郵票總值m,m 100。然後是乙個數n,n 20,表示有n張郵票。接下來是n個正整數...