题解 | #数位染色#

数位染色

https://www.nowcoder.com/practice/adf828f399de4932955734a4eac12757

num_s = input().strip()
digsum = sum([int(i) for i in num_s])
state = ['0']*(digsum+1)

state[int(num_s[0])] = '1'
for i in num_s[1:]:
    # print(state)
    c_i = int(i)
    c_state = ['0']*(digsum+1)
    for j in range(digsum+1):
        if state[j] == '1':
            # print(abs(j-c_i))
            c_state[abs(j-c_i)]='1'
            c_state[abs(j+c_i)]='1'
    state = c_state
ret = 'Yes' if state[0]=='1' else 'No'
print(ret)

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务