華為fx測試題

2021-07-31 01:35:22 字數 3621 閱讀 6849

1.

小k是x區域的銷售經理,他平常常駐「5」城市,並且經常要到「1」、「2」、「3」、「4」、「6」城市出差。當機場出現大霧情況時,會導致對應城市的所有航班的起飛及降落均停止(即不能從該城市出發,其他城市也不能到達該城市)。小k希望知道如果他需要到x城市出差時,如果遇到y城市出現大霧,他最短的飛行時間及飛行路徑。

注意:當兩個城市間不可達時,消耗時間預設取1000.

各城市簡的飛行時間如下表所示,加粗行代表始發城市,加粗列代表終點城市,矩陣中的值代表從始發城市飛到終點城市所耗時間(單位:小時),m代表不可達(注意飛行執行緒是單向的,即a->b不等於b->a),例如

(1)從1號城市飛行到4號城市花費5h,從4號城市飛到1號城市花費2h

(2)從5號城市飛行到3號城市不可達,從3號城市飛到5號城市花費7h

1    2    3    4    5    6
1 0h 2h 10h 5h 3h m

2 m 0h 12h m m 10h

3 m m 0h m 7h m

4 2h m m 0h 2h m

5 4h m m 1h 0h m

6 3h m 1h m 2h 0h

輸入描述:

輸入出差城市x(x可為1、2、3、4、6)

輸入大霧城市(y可為0、1、2、3、4、5、6,可為0時代表沒有城市出現大霧)

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

typedef

long

long ll;

const

double pi = acos(-1.0);

const

double eps = 1e-6;

int inf = 1000;

vector

>dist(6, vector

(6));

vector

>path(6, vector

(6));

deque

result;

void setfog(vector

>&matrix, int city)

}void floyd(vector

>&matrix)

for (int k = 0; k < size; k++) }}

}}void findpath(int i, int j)

result.push_front(ci);

result.push_back(ccj);

}int main()

, , ,

, ,};

int end, foggy;

cin >> end >> foggy;

--end;

--foggy;

if (foggy!=-1)

setfog(matrix, foggy);

floyd(matrix);

findpath(4, end);

cout

<< dist[4][end] << endl;

for (int i = 0; i < result.size(); i++)

++result[i];

if (dist[4][end] == inf)

result.clear();

if (result.empty())

cout

<< ""

<< endl;

else

return

0;}

2.

題目描述:輸入5個任務的id,任務優先順序,開始執行時間和任務執行時間,其中排程過程支援搶占,即優先順序值高的任務可搶占正在執行的優先順序值低的任務,最後輸出前200秒,任務的排程過程

輸入描述:任務資訊輸入格式為:[任務id.任務優秀級.任務開始執行時間.任務執行時長];任務與任務之間使用「|」隔離;5個任務的任務id為1-5;任務優先順序範圍為0-200.

輸入例子:[1.80.1.10]|[2.20.11.15]|[3.50.21.10]|[4.120.31.10]|[5.100.41.10]

輸出描述:任務id.任務執行時長;任務之間使用」|」分割;如無任務執行,則任務id為0;

輸出例子:0.1|1.10|2.10|3.10|4.10|5.10|2.5|0.144

大致思想就是先把任務按照時間排序.然後先放最前面的任務,看下乙個任務開始的時間是否有任務在執行,之後比較優先順序,如果優先順序高就先執行下乙個任務,第乙個任務順延.依次類推

也可以按照任務的優先順序程度進行排序,然後最高的先執行,之後執行次高的如果時間不為0,則被之前的分段.

#include 

#include

#include

#include

#include

#include

using namespace std;

int main()

; scanf("[%d.%d.%d.%d]|[%d.%d.%d.%d]|[%d.%d.%d.%d]|[%d.%d.%d.%d]|[%d.%d.%d.%d]",

&task[0][0], &task[0][1], &task[0][2], &task[0][3],

&task[1][0], &task[1][1], &task[1][2], &task[1][3],

&task[2][0], &task[2][1], &task[2][2], &task[2][3],

&task[3][0], &task[3][1], &task[3][2], &task[3][3],

&task[4][0], &task[4][1], &task[4][2], &task[4][3]);

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

}for (int k = 0; k < 4; ++k)

swap(task[i][k], task[id][k]);

}int

time[200] = ;

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

}else

if (pro == 0)

}now = time[start];

}if (time[start] == 0)

}else

for (int j = 0; j < task[i][3]; j++)}}

}int cnt;

int now;

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

else

else}}

printf("%d", cnt);

}

華為上機測試題目

汽水瓶明明的隨機數 進製轉換 最後乙個單詞的長度 計算字元的個數 老師想知道從某某同學當中,分數最高的是多少,現在請你程式設計模擬老師的詢問。當然,老師有時候需要更新某位同學的成績.輸入描述 輸入包括多組測試資料。每組輸入第一行是兩個正整數n和m 0 n 30000,0 m 5000 分別代表學生的...

華為2015機試測試題

1.計票統計 描述 模擬n個人參加選舉的過程,並輸出選舉結果 假設候選人有四人,分別用 a b c d 表示,選舉時開始計票,若輸入的不是 a b c d 則視為無效票。選 舉結束後獲取各個候選人的得票數以及無效票的個數,輸出結果以新增候選人的順序進行順序輸 出,最後一行為無效的數量。同時getvo...

華為實習程式設計測試題解(2018 03 21)

做了華為的三道程式設計題,以下是題解 1.在字串中找出連續最長的數字串 題目大意 輸入乙個字串,輸出最長的連續數字字串,並輸出其長度,中間用逗號隔開。比如輸入123abc,輸出123,3 另外,要求數字串中每個數字不要求按順序,比如123ab2357中最長數字串應該是2357 而且,如果有多個最長串...