题解 | #数组分组#
数组分组
https://www.nowcoder.com/practice/9af744a3517440508dbeb297020aca86
def wubei(a): if a%5==0: return True else: return False def sanbei(a): if a%3==0 and a%5 !=0: return True else: return False b = input() c = list(map(int,input().split())) d = sum(c) d = d/2.0 e = [] f = [] g = [] l = 0 for i in range(len(c)): if wubei(c[i]): e.append(c[i]) elif sanbei(c[i]): f.append(c[i]) else: g.append(c[i]) h = len(g) def dfs(j): global l if sum(e)==d: l=1 return True for k in range(2): if k==0 and j<h: e.append(g[j]) j +=1 dfs(j) e.pop(-1) j -= 1 if k==1 and j<h: j+=1 dfs(j) dfs(0) if l==1: print("true") else: print("false")
有蛮多是没用的,我懒得删了
思路:
1:将数组分为,三个。5的倍数,三的倍数(但不是五的倍数),剩下的数字
2:使用dfs