連連看 網易遊戲2016實習生招聘

2021-07-01 18:59:45 字數 1706 閱讀 6007

但是小江並不滿足於這個遊戲規則,因為他覺得最多只能拐2折這個限制並不合理。好奇的小江想知道的是,給定乙個連連看的狀態以及某乙個牌子,在k折以內可以到達的所有具有相同圖案的牌子的數量是多少。

每個輸入資料報含多個測試點。

第一行為測試點的個數s <= 20。之後是s個測試點的資料。

每個測試點的第一行為1 <= n <= 200, 1 <= m <= 200,表示連連看的大小。接下來的n行,每一行有m個整數,表示連連看該行的狀態,如果為0,則表示該格為空,否則代表一種圖案的牌子。

然後是三個整數x <= n, y <= m,0 <= k <= 10000,表示查詢(x, y)這個牌子在k折以內能消除的所有相同牌子總數。其中連連看左上角的格仔座標為(1, 1),右下角為(n, m)。保證查詢的格仔是有圖案的。

對於每個測試點,輸出對應的能消除的所有牌子總數。

提示 樣例第乙個例子,第(1, 1), (2, 3)和(2, 5)為3個可以在3摺內被消除的相同牌子。

輸入

34 5

1 0 1 0 2

0 0 1 3 1

3 3 1 5 9

6 1 4 8 7

1 3 3

4 51 0 1 0 2

0 0 1 3 1

3 3 1 5 9

6 1 4 8 7

1 3 1

2 21 10

2 31 1 10輸出3

20

這題使用廣搜的思想來做。

我們使用如下的資料結構表示乙個搜尋狀態

struct state
對當前的狀態,我們往跟原方向不在一條線上的兩個方向發散(初始時往4個方向發散),直到遇到不為0或者不合法的座標為止。將為0且未訪問過的座標用乙個狀態儲存起來並壓入佇列。將所有已訪問的座標標記一下。記錄下在轉折次數不超過k時遇到的目標點的個數即為答案。

#include 

#include

#include

using

namespace

std;

struct state

state(int ox, int oy, int onum, int ocx, int ocy)

};const

int cx = ;

const

int cy = ;

int map[202][202];

bool vis[202][202];

int t, n, m, x, y, k;

//檢查是否出界

bool valid(int x, int y)

int main()

if (map[nx][ny] == map[x][y] && !vis[nx][ny])

vis[nx][ny] = true;

break;}}

while (!que.empty())

if (map[nx][ny] == map[x][y] && !vis[nx][ny])

vis[nx][ny] = true;

break;}}

}printf("%d\n", count);

}return

0;}

網易遊戲2016實習生招聘筆試題目 推箱子

對於輸入的狀態,找出玩家和箱子的位置,並使用座標記錄其位置,然後對於終端輸入的走法,依次判斷player按該走法一步一步的移動之後是否能夠成功。由於思路比較簡單,實際內容就是如何讓計算機模擬這個推箱子的過程。步驟也很簡單,只有上下左右移動,但是需要注意的是每次移動之前,需要對於題目描述的集中狀態和情...

網易遊戲 QA實習生 一面面試記錄

大四暑假內推面試了網易遊戲qa,奈何那時候水平太低,很多基礎性問題都沒答上來。妥妥的一面就掛了,面試官人很好,開始問了很多難的問題我都沒答上來,後面就問我了一些基礎知識,然而水平太低,還是不會了。c語言結構體沒有函式,c 裡面結構體可以有函式 可以展開把重要的一些內建物件講一下。list 主要子類 ...

2018網易遊戲雷火盤古實習生招聘筆試真題

1.字串編碼 輸入描述 每個測試輸入包含1個測試用例 每個測試用例輸入只有一行字串,字串只包括大寫英文本母,長度不超過10000。輸出描述 輸出編碼後的字串 輸入例子 aaaabccdaa 輸出例子 4a1b2c1d2a 思路分析 這道題好像以前是一家企業的面試題,leetcode easy級別,思...