竞赛讨论区 > python求助

python求助

题目是小红的背包问题。在长度为n的数组nlist中求满足所选数量最少的数字组合(至少选一个),使得数字组合是p的整倍数。

求大佬看看我这个代码时间复杂度很高?牛客上说这很慢。。。

n,p = map(int,input().split())

nlist = list(map(int,input().split()))

if p in nlist:

print(1)

exit(0)

nlist.sort()

for i in range(len(nlist)):

if nlist[i] %p == 0:

print(nlist[i])

exit(0)

from itertools import combinations

for j in range(2,len(nlist)):

for cur in combinations(nlist,j):

if sum(cur) %p ==0:

print(len(cur))

exit(0)

全部评论

(0) 回帖
加载中...
话题 回帖

等你来战

查看全部

热门推荐