#36508: python AC 想法


aa0980949726@gmail.com (統測戰士)

學校 : 國立華南高級商業職業學校
編號 : 224693
來源 : [211.20.249.119]
最後登入時間 :
2025-04-24 18:58:48

可以用兩個集合一個是存數值的一個是進行加減的最後將新集合與舊集合進行更新

 

 

不太會表達,下面有程式碼建議先不要看

#36509: Re: python AC 想法


aa0980949726@gmail.com (統測戰士)

學校 : 國立華南高級商業職業學校
編號 : 224693
來源 : [211.20.249.119]
最後登入時間 :
2025-04-24 18:58:48

可以用兩個集合一個是存數值的一個是進行加減的最後將新集合與舊集合進行更新

 

 

不太會表達,下面有程式碼建議先不要看



 

---程式碼在下方但執行時間有點長,希望有大神給予我一些思路

 

 

 

 

 

 

while True:
    try:
        m, n = map(int, input().split())
        for _ in range(m):
            x = list(map(int, input().split()))
            s = set()
            s.add(0)
            for i in x:
                ns = set()
                for j in s:
                    ns.add(j + i)
                    ns.add(j - i)
                s = ns  # 更新目標集合

            if 0 in s:
                print('Yes')
            else:
                print('No')
    except EOFError:
        break
#36514: Re: python AC 想法


asnewchien@gmail.com (david)

學校 : 南投縣立旭光高級中學
編號 : 68108
來源 : [114.42.176.221]
最後登入時間 :
2025-10-04 22:52:03

https://home.gamer.com.tw/artwork.php?sn=5758946

可以參考我的解法,有問題再討論。

#36515: Re: python AC 想法


asnewchien@gmail.com (david)

學校 : 南投縣立旭光高級中學
編號 : 68108
來源 : [114.42.176.221]
最後登入時間 :
2025-10-04 22:52:03

https://home.gamer.com.tw/artwork.php?sn=5758946

可以參考我的解法,有問題再討論。

這種解法適用於 sum( array ) 不大的時候。