1 条题解

  • 0
    @ 2024-4-24 17:02:31

    专门出的一个搜索题。

    我们考虑dfs(i,x,y,now)dfs(i,x,y,now)

    此处ii表示该考虑第ii个质数的归属了,当前分别是x,yx,y,当前一共有nownow个不同的质因子。

    那么下一次dfsdfs肯定是dfs(i+1,x×p[i]t,y,now+1)dfs(i+1,x\times p[i]^t,y,now+1),或者是dfs(i+1,x,y×p[i]t,now+1)dfs(i+1,x,y\times p[i]^t,now+1),或者是dfs(i+1,x,y,now)dfs(i+1,x,y,now)

    需要注意的是,这个过程中如果写法不太好,很容易乘爆long longlong\ long,要么用int128int128,要么用除法来保证不会乘爆,比如if (a*b<=n)可以改写乘if (a<=n/b)

    但这么做会常数巨大,可以考虑分别用两个long longlong\ long去存当前x,yx,y乘以那个质数的幂以后的结果,如果超了nn就当n+1n+1即可。这样全程不用除法。

    剪枝的话很容易想到,就是假设后面都用第i,i+1,...,i,i+1,...,种质数,加上当前的nownow都凑不够目前的bestbest,那就直接不用搜了。

    • 1

    信息

    ID
    1411
    时间
    3000ms
    内存
    512MiB
    难度
    10
    标签
    (无)
    递交数
    72
    已通过
    2
    上传者