微軟2019暑期實習筆試題


微軟2019招暑期實習生的編程題

問題一:  【玻璃球游戲】

一個隊伍中N個人從1到N編號,N個人之間的連線方式如下:編號為K的人和編號為J的人相連(J exactly divides K),玻璃球可以沿線傳遞;如果編號為P的人有一個玻璃球,有多少種方式可以在至多X步移動中重新回到P?

輸入說明:N(人的數目);P(擁有玻璃球的人編號);X(最大移動數目);

輸入樣例:N=3;P=2;X=4;    樣例輸出:3; 解釋:3種方式;2->1->2      2->1->3->1->2        2->1->2->1->2

問題二:【弓箭手】

一行有N個壺,每個壺都有個特定的編號,弓箭手用以下方式擊中壺:一次射擊種,弓箭手可以移開1個或1個以上的壺,使壺的編號形成一個回文;剩下的壺可以被轉移以使所有的壺又一次位於一行,射擊手可以再次進行射擊。現在假設每次射擊得一分,找到最小的得分。

輸入說明:input1:壺的數目N;input2:數組表示壺對應的數字編號;

輸入樣例:input1:2;input2:{1,2};   樣例輸出:2;

解釋:此處射擊手無法選擇任何壺的回文子字符串,他無法射擊一個以上的壺,並且他需要分開射擊,因此2次射擊得分為2;

輸入樣例:input1:5;input2:{1,4,3,1,5};   樣例輸出:3;

解釋:此處射擊手先射擊第三個壺,然后序列變為{1,4,1,5},因為壺被移動;然后他一次射擊前三個壺因為前三個壺形成一個回文,因此這個序列剩下{5},最后射擊5,因此射擊三次得分為3。

問題三:【排隊】

電影劇院的購票中心,編號為1到N的N個人站在一個隊伍中,因此隊列中的第一個人編號為1。接下來會發生以下幾類事情:

E1:站在隊列前的人拿到票然后離開;

E2:編號為X的人感到憤怒離開隊伍;

提問:

E3:編號為X的人處於什么位置?

輸入說明:input1:N,站在隊伍中的人;  input2:Q,提問的數量;  input3:含有Q個元素的數組,每個元素包含:如果E=1,事件E1發生; 如果E=2,E2發生; 如果E=3,找到X位置;

輸出說明:應該返回查詢的位置;

輸入樣例:input1:5; input2:3;  input3:{{1,0},{3,3},{2,2}};   輸出2;

解釋:第一個人被移出隊列,編號為3的人現處於第二個位置;編號為2的人移出這個隊伍;因此2是答案。

問題四:【蜂窩】

蜜蜂收集很多花的蜂蜜,並且將其運送到蜂巢然后在特定時間范圍內返回家。任務是在規定時間內盡可能多的收集蜂蜜並且運送到蜂巢中。每朵花有一個單元的蜂蜜,每次只能運送一個單元的蜂蜜。並且,覆蓋一個單元的距離需要一個單元的時間,距離采用歐式距離格式計算。找到你能收集的蜂蜜的最大單元。

輸入說明:input1:花的數目;input2:蜂巢的數目; input3:花對應的坐標; input4:蜂巢對應的坐標; input5: 出發點坐標;

輸入樣例: input1:2;  input2:2;  input3:{{3,3},{4,6}};  input4:{{5,5},{6,1}};  input5:{1,4};  input6:13;

輸出樣例:2

解釋:首先到達{3,3}的花需要距離sqrt(5),然后去蜂窩{5,5}需要距離sqrt(8),然后去{4,6}的花朵,去蜂窩{5,5},最后返回{1,4}總共需要距離sqrt(5)+sqrt(8)+sqrt(2)+sqrt(2)+sqrt(17)=12.0160

 


---------------------
原文:https://blog.csdn.net/sinat_22147265/article/details/89005819


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM