codeforces 703E Mishka and Divisors

Posted wuyuanyuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codeforces 703E Mishka and Divisors相关的知识,希望对你有一定的参考价值。

codeforces 703E Mishka and Divisors

题面

给出大小为\(1000\)的数组和一个数\(k\),求长度最短的一个子序列使得子序列的元素之积是\(k\)的倍数,如果有多个解输出元素和最小的序列。
\(k\)和数组元素的数量级都是\(1e12\)

题解

\(f[i][d]\)表示前\(i\)项是\(d\)的倍数的最优解。因为\(d\)只可能是\(k\)的因数,所以离散化一下\(k\)的因数即可。
过程中需要多次求\(gcd\),直接求会超时。需要先预处理\(b[i]=gcd(a[i], k)\),那么\(gcd(a[i], k/d) -> gcd(b[i], k/d)\)

以上是关于codeforces 703E Mishka and Divisors的主要内容,如果未能解决你的问题,请参考以下文章

CodeForces 703B Mishka and trip

Codeforces 703B Mishka and trip

Codeforces Round #365 (Div. 2) D. Mishka and Interesting sum 树状数组

Educational Codeforces Round 56 Editorial

Codeforces Round #365 (Div. 2) D - Mishka and Interesting sum(离线树状数组)

codeforces 703D Mishka and Interesting sum 偶数亦或 离线+前缀树状数组