b zj 雀魂啟動(分類討論的回溯)

2022-02-24 13:13:18 字數 841 閱讀 9386

給定13張牌,問加入1~9中的任意一張牌後,能否達成和牌(滿足以下兩個條件):

思路:暴力刪除即可,更優的做法是使用計數來實現邏輯刪除

def dfs(a):

if len(a)==2 and a[0]==a[1]: return 1

for i in range(len(a)-4):

if a[i]==a[i+4]: #統一種類的牌不能超過4張

return 0

for i in range(len(a)-2):

# 刻子

t=a[i]

if t==a[i+2]:

b=a.copy()

b.remove(t)

b.remove(t)

b.remove(t)

if dfs(b): return 1

# 順子

elif (t in a) and (t+1 in a) and (t+2 in a):

b=a.copy()

b.remove(t)

b.remove(t+1)

b.remove(t+2)

if dfs(b): return 1

return 0

a,ans=list(map(int, input().split())),

for i in range(1,10):

cards=a.copy()

cards.sort()

ans=' '.join(str(x) for x in sorted(ans)) if ans else '0'

print(ans)

位元組跳動 雀魂啟動

小包最近迷上了一款叫做雀魂的麻將遊戲,但是這個遊戲規則太複雜,小包玩了幾個月了還是輸多贏少。於是生氣的小包根據遊戲簡化了一下規則發明了一種新的麻將,只留下一種花色,並且去除了一些特殊和牌方式 例如七對子等 具體的規則如下 例如 111 2226 6677 799 可以組成1,2 6,7的4個刻子和9...

位元組題 雀魂啟動!

雀魂啟動!位元組跳動2019春招研發部分程式設計題彙總 牛客網 輸入是13個數字,統計每個數字出現的次數,根據題意,次數最大為4,而出現的數字種類在4 9之間,和牌方式有兩種,均需要乙個雀頭 2張一樣的牌作雀頭 分析一下,如果出現數字種類只有4種,那和牌的唯一方式就是乙個雀頭 2 4個順子 12 因...

uboot啟動引數設定分類及方法

2010 11 17 14 46 54 分類 預設分類 標籤 字型大小 大中小訂閱 一 nfs啟動核心與根檔案系統,核心與根檔案系統都在nfs上 bootargs noinitrd root dev nfs rw nfsroot 192.168.0.1 home tekkaman working n...