網易遊戲雷火盤古招聘題(一)
[程式設計題]賽馬
在一條無限長的跑道上,有n匹馬在不同的位置上出發開始賽馬。當開始賽馬比賽後,所有的馬開始以自己的速度一直勻速前進。每匹馬的速度都不一樣,且全部是同樣的均勻隨機分布。在比賽中當某匹馬追上了前面的某匹馬時,被追上的馬就出局。 請問按以上的規則比賽無限長的時間後,賽道上剩餘的馬匹數量的數學期望是多少
輸入描述:
每個測試輸入包含1個測試用例輸入只有一行,乙個正整數n1 <= n <= 1000
輸出描述:
輸出乙個浮點數,精確到小數點後四位數字,表示剩餘馬匹數量的數學期望
輸入例子:12
輸出例子:
1.0000 1.5000
思路:對於最後一匹馬而言, 它沒有辦法被其他馬追上(因為它後面已經沒馬了),所以它不會出局,他存活的概率就是1,對於倒數第二匹而言,他只有被後面1匹馬追上,或者不被追上 所以是1/2,同理,倒數第三匹1/3…………所以n匹馬就是1/1+1/2+1/3+1/4+………+1/n.。
**實現(c/c++):
#include
#include //使用小數格式控制時使用的標頭檔案
using namespace std;
int main()
//fixed << setprecision(i) 用來控制 小數點後面的位數,i為具體的位數
cout << fixed << setprecision(4) << sum;
return 0;
} [程式設計題]字串編碼
給定乙個字串,請你將字串重新編碼,將連續的字元替換成「連續出現的個數+字元」。比如字串aaaabccdaa會被編碼成
4a1b2c1d2a。
輸入描述:
每個測試輸入包含1個測試用例每個測試用例輸入只有一行字串,字串只包括大寫英文本母,長度不超過10000。
輸出描述:
輸出編碼後的字串
輸入例子:
aaaabccdaa
輸出例子:
4a1b2c1d2a
思路:
解題的著眼點在於每2個字母是否相同,根據這個實現思路有很多,其實最簡潔的的應該是用正規表示式,我用的比較笨的方法。。。
**實現(c/c++):
#include
#include
using namespace std;
void tihuan(char c );
int main()
void tihuan(char c)
j++;}}
[程式設計題]最大和
在乙個n*n的陣列中尋找所有橫,豎,左上到右下,右上到左下,四種方向的直線連續d個數字的和裡面最大的值
輸入描述:
每個測試輸入包含1個測試用例,第一行包括兩個整數 n 和 d :3 <= n <= 1001 <= d <= n接下來有n行,每行n個數字d:0 <= d
<= 100
輸出描述:
輸出乙個整數,表示找到的和的最大值
輸入例子:
4 287 98 79 61
10 27 95 70
20 64 73 29
71 65 15 0
輸出例子:
193思路:
一種簡單粗暴乙個乙個遍歷,另一種是遞迴。下面是我照的網上乙個人寫的遞迴演算法
**實現(c/c++):
#include
#include
#include
#include
#include
using namespace std;
int ans;
int n,d;
int a[104][104];
void dfs(int sum,int cnt,int x,int y,int op)
int main()
cout << ans << endl;
return 0;
}[程式設計題]推箱子
大家一定玩過「推箱子」這個經典的遊戲。具體規則就是在乙個n*m的地圖上,有1個玩家、1個箱子、1個目的地以及若干障礙,其餘是空地
。玩家可以往上下左右4個方向移動,但是不能移動出地圖或者移動到障礙裡去。如果往這個方向移動推到了箱子,箱子也會按這個方向移
動一格,當然,箱子也不能被推出地圖或推到障礙裡。當箱子被推到目的地以後,遊戲目標達成。現在告訴你遊戲開始是初始的地圖布局,
請你求出玩家最少需要移動多少步才能夠將遊戲目標達成。
輸入描述:
每個測試輸入包含1個測試用例第一行輸入兩個數字n,m表示地圖的大小。其中0
圖。其中 . 表示空地、x表示玩家、*表示箱子、#表示障礙、@表示目的地。每個地圖必定包含1個玩家、1個箱子、1個目的地。
輸出描述:
輸出乙個數字表示玩家最少需要移動多少步才能將遊戲目標達成。當無論如何達成不了的時候,輸出-1。
輸入例子:
4 4
....
..*@
....
.x..
6 6.
..#...
.....#
*##...
.##.#.
.x....
@#...
輸出例子:311
思路:。。。。。。。我也不會 等我研究完再說。
**實現(c/c++):
#include
#include
#include
using namespace std;
int n,m,x1,x2,x3,y1,y2,y3;
char map[10][10],flag[8][8][8][8];
int value[4][2] = ,,,};
int abs(int a)
struct node
};int bfs()
else if(i == 1)
else if(i == 2)
else
if(!(temp2.a>=0 && temp2.a=0 && temp2.b
}if(temp2.a == x3 && temp2.b == y3) return temp2.t;
if(flag[temp2.x][temp2.y][temp2.a][temp2.b]) continue;
flag[temp2.x][temp2.y][temp2.a][temp2.b] = 1;
q.push(temp2);}}
}return -1;
}int main()
if(map[i][j] == '*')
if(map[i][j] == '@')}}
memset(flag,0,sizeof(flag));
cout<
return 0;
}
2018網易遊戲雷火盤古實習生招聘筆試真題
1.字串編碼 輸入描述 每個測試輸入包含1個測試用例 每個測試用例輸入只有一行字串,字串只包括大寫英文本母,長度不超過10000。輸出描述 輸出編碼後的字串 輸入例子 aaaabccdaa 輸出例子 4a1b2c1d2a 思路分析 這道題好像以前是一家企業的面試題,leetcode easy級別,思...
2017網易遊戲雷火盤古實習生招聘筆試真題
1.給定乙個字串,請你將字串重新編碼,將連續的字元替換成 連續出現的個數 字元 比如字串aaaabccdaa會被編碼成4a1b2c1d2a。include include char s 10004 int main tem s i cot 1 else cot printf d c cot,tem ...
2017網易遊戲雷火盤古實習生招聘筆試真題 推箱子
2018.3.19 此題我用了廣度優先搜尋 bfs 的方法.廣度優先搜尋不僅僅可以使用在圖的遍歷中,而且可以用於求解複雜問題的最優解。本題就是利用bfs的經典題目,首先來分析這個問題 查詢空間 所有 0,0,0 到點 a 1,b 1,c 1 合法的行走路徑 查詢目標 找到通往出口的最短路徑 查詢方法...