天天看點

微軟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

轉載于:https://www.cnblogs.com/yuanninesuns/p/10673079.html