题解 | #数位染色#
数位染色
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)