美团笔试

a了4.25约面了

第四题dfs+剪枝只过了25%,咋做啊?

n,k = map(int,input().split())
l = list(map(int,input().split()))
res = []
path = []
def func(l):
    l.sort()
    for i in range(1,len(l)):
        if l[i]%l[i-1]!=0:
            return False
    return True
def dfs(u):

    if len(path[:])==n-k:
        if func(path[:]):
            res.append(path[:])
        return
    for i in range(u,n):
        path.append(l[i])
        dfs(i+1)
        path.pop()

    return res

ans = dfs(0)
print(len(ans)%(10**9+7))


全部评论
先对数排序,然后p i j 表示第i个数为最大数的情况下剩余j个数的情况数 当nj是ni的倍数时p j l 等于 p i l-1
1 回复 分享
发布于 2023-09-02 21:35 河北
输出0,45%
1 回复 分享
发布于 2023-09-02 21:42 陕西
动态规划
点赞 回复 分享
发布于 2023-09-02 21:22 广东
你们都有第五题么?我好像没有第五题?是我漏了么?
点赞 回复 分享
发布于 2023-09-02 21:41 江苏
我也是...
点赞 回复 分享
发布于 2023-09-02 22:04 广东
回溯,超内存
点赞 回复 分享
发布于 2023-09-02 22:45 德国
暴力动态规划能过
点赞 回复 分享
发布于 2023-09-03 00:20 上海
第四题题目是什么来着?记不起来了
点赞 回复 分享
发布于 2023-09-03 01:02 山东
树形dp应该可以
点赞 回复 分享
发布于 2023-09-03 04:08 香港
我就想知道这场笔试题啥时候能在牛客上开放,我要看下是不是真的不支持cache修饰符
点赞 回复 分享
发布于 2023-09-03 10:19 北京

相关推荐

11-08 10:39
门头沟学院 C++
点赞 评论 收藏
分享
3 3 评论
分享
牛客网
牛客企业服务