両腕秤
4547 ワード
作成日:2022年2月10日午後2:20
を左に追加するとsumに重量が加算され、右にするとsumに重量が減算されます.そのボタンをまったく置かなければ、総数を直接彼に渡します. のすべてのボタンは、左、ああ、放さないと、このような3つの状況を調べると、最終的に対称構造が現れ、結果値が負、正数の場合対称になります.絶対値は等しく、res(正の場合) に追加されたのは1つだけです.
インプリメンテーションコード
# 양팔저울
import sys
sys.stdin = open("input.txt", "rt")
def DFS(L, sum):
global res
if L == k:
if 0<sum<=s:
res.add(sum)
else:
DFS(L+1, sum+weight[L])
DFS(L+1, sum-weight[L])
DFS(L+1, sum)
if __name__ == "__main__":
k = int(input())
weight = list(map(int, input().split()))
s = sum(weight)
res = set()
DFS(0, 0)
print(s-len(res))
Reference
この問題について(両腕秤), 我々は、より多くの情報をここで見つけました https://velog.io/@lsj8706/양팔저울テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol