大家都玩過開心消消樂吧:有-個m行,n列的棋盤,棋盤每個格仔中擺有乙個顏色的水果。
一共有9種不同顏色的水果(用數字1-9分別標識)。當玩家進行一次操作改變棋盤上水果的
布局之後,棋盤上的水果將會按以下規則重新排列:
第一步:同一行或者同一列上有3個或以上緊鄰的相同顏色的水果,則會消除,並且消除位
置的棋盤記為空缺位。(本步驟是一 次性消除, 如有:
112112
222則會一次性消除橫方向和豎方向,結果是:
110110
000第二步:如果棋盤的空缺位上方有水果,則該水果向下方掉落填充到空缺位。並且該水果原
來的位置變成空缺位置,然後再次檢查是否有滿足第一步和第二步的水果, 有則重複第一步
或第二步,沒有則棋盤處於穩定狀態。
我們現在的遊戲設計師希望對這個消消樂遊戲增加一些干預,加入第三步:
先準備乙個替補水果佇列q,對第二步之後處於穩定狀態的棋盤進行檢查,從最下最左開始,
往右檢查是否有空缺位,有則從q的最前面取出一乙個水果放入,沒有則往上一行從左至右檢
查,直到棋盤被放滿,或者q用完為空為止,此時再進行第一步到第 三步的流程,- 直到棋
盤處於穩定狀態為止。
如4*6的初始棋盤,有9種不同顏色的水果,用數字表示顏色,地圖表示為:
123456
227891
322891
332111
進行消除後,空缺位用0表示,處於穩定狀態的棋盤為:
103000
207450
302890
332896
替補水果佇列q:1,2,3.4.,5,6}後,棋盤為:
237454
312892
332896
輸入描述:
假設3<=m<=30,3<=n<=30
輸入為字串拼接內容:
m n棋盤從左到右第一-行至最後- -行的顏色對應數字替補水果佇列
輸出描述:
輸出最後穩定狀態的第一行(棋盤頂部)從左到右的顏色
輸入4 6 123456227891322891332111 123456
輸出
網易雷火筆試 優先佇列 heapq 堆
豬場周邊商場有n種不同的商品,第i種商品有g i件。現在需要組織一次買福袋的活動,每個福袋恰好有k件不同種類的商品,求最多能組成多少個福袋。輸入描述 第一行為2個正整數,表示商場共有n種不同商品,每個額福袋需要k種不同商品 第二行為n個正整數,表示商場每種商品的件數。輸出描述 福袋個數利用了優先佇列...
網易雷火筆試 印表機(區間dp
有一台神奇的印表機,可列印的字母範圍大寫a z,每次只能從紙帶上的任意位置開始列印同一字母任意次數,並且可以覆蓋之前同一位置上已經列印上的字母。給定乙個目標字串,問最少需要列印多少次才能列印出給定字串。例如,目標為abcba,先列印aaaaa,再列印bbb,再列印c,所以答案為3。分析 沒什麼難的,...
3月29日 網易雷火筆試(人生第一次筆試)記錄
優化思路 用3個map,map1記錄s1 現過的字元的次數,s1中沒出現,s2 現的,這裡記0。map2記錄s2 現過的字元的次數,s2中沒出現,s1 現的,這裡記0。map3先將s1 s2中所有出現過字元的次數為0,然後逐個匹配使得map3 map1 map2。之後就是dp,3個map不斷迭代即可...