清華考研複試機試題

2021-08-20 10:59:37 字數 1528 閱讀 4726

題目描述

使用**伺服器能夠在一定程度上隱藏客戶端資訊,從而保護使用者在網際網路上的隱私。我們知道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之間的整數。輸入資料的任何一行都不包含空格字元。

輸出描述:

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

示例1:

輸入

3166.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

解答

#include 

#include

#include

using namespace std;

int solve(char p[16], int n, char q[16], int

m) }

if (j == m)

return

0; }

if (n == 1 && max != -1)

return -1;

return

1 + solve(p, n, q+max, m-max);

}int main()

cin >> m;

for (int i = 0; i < m; i++)

cout << solve(p, n, q, m) << endl;

return

0;}

二維陣列作為函式形參的傳遞方式:

void func1(int iarray[10])    

int main()

考研複試機試題(2009)

牟尼的專欄 problem a 請寫乙個程式,給出指定整數範圍 a b 內所有的完數,乙個數如果恰好等於除它本身外的所有因子之和,這個數就稱為完數,例如6是完數,因為6 1 2 3。輸入說明 共一組資料,為兩個正整數,分別表示a和b 1輸出說明 指定範圍內的所有完數,每個數占一行。輸入樣本 1100...

清華大學考研複試機試 abc

設a b c均是0到9之間的數字,abc bcc是兩個三位數,且有 abc bcc 532。求滿足條件的所有a b c的值。題目沒有任何輸入。請輸出所有滿足題目條件的a b c的值。a b c之間用空格隔開。每個輸出佔一行。水題,直接遍歷暴力求解即可,三層for迴圈。不過也有一些優化的點,可能優化效...

清華大學考研複試機試 root N,k

n 2000000000 每組測試資料報括一行,x 0輸入可能有多組資料,對於每一組資料,root x y,k 的值 4 4 104這道題乍一看好像沒有什麼思路,那就先暴力求解試試。不過不管你用pow函式,還是用快速冪運算,都過不了,因為結果已經爆long long int。有關快速冪運算這裡簡單提...