小编Lov*_*per的帖子

如何计算集合{1,2,3,..,n}的互质子集数量

我正在解决这个问题(问题一).声明是:

该集合中{1, 2, 3, ..., n}有多少子集是互质的?如果每个元素的每两个都是互质的,则一组整数称为互质.如果它们的最大公约数等于1,则两个整数是互质的.

输入

第一行输入包含两个整数nm(1 <= n <= 3000, 1 <= m <= 10^9 + 9)

产量

输出{1, 2, 3, ..., n}模数的互质子集的数量m.

输入:4 7输出:5

有12点质数的子集{1,2,3,4}:{},{1},{2},{3},{4},{1,2},{1,3},{1,4},{2,3},{3,4},{1,2,3},{1,3,4}.


我认为可以通过使用素数来解决.(跟踪我们是否使用了每个素数)..但我不确定.

我可以得到一些解决这个任务的提示吗?

algorithm primes integer

25
推荐指数
2
解决办法
1万
查看次数

如何确定字符串S可以通过删除一些字符来从字符串T中进行,但最多可以是K个连续字符

抱歉,长标题:)

在这个问题中,我们有S长度的n字符串T和长度的字符串m.我们可以在时间复杂度O(n + m)中检查字符串S的子序列T.这很简单.

我很好奇:如果我们可以删除最多K连续的字符怎么办?例如,如果K = 2,我们可以"ab""accb",但不从"abcccb".我想检查它是否可能非常快.

我只能发现很明显O(nm):检查字符串S和字符串中的每个后缀对是否可能T.我认为也许贪婪的算法是可能的,但如果K = 2,情况S = "abc"并且T = "ababbc"是一个反例.

有没有解决这个问题的快速解决方案?

string algorithm

13
推荐指数
1
解决办法
661
查看次数

有没有一个例子可以通过在Omega(q log n)中运行的秩来使Union和find算法没有联合?

最近,我读到了这一点,并且惊讶于联合和查找算法的时间复杂性与路径压缩一致O((m+n) log n),m"查找"查询的数量在哪里,是n"合并"查询的数量.

我对这种复杂性感兴趣,(因为我通常没有排名实现这个算法,即使我按排名颠倒应用联合,性能也不差!)并试图找到一个可以使时间复杂度的例子.但是由于路径压缩的强大功能,它真的很难......

有没有可以实现的例子Omega((m+n) log n),或者这种复杂性只是理论上的,不实用的?

algorithm disjoint-sets

8
推荐指数
1
解决办法
633
查看次数

如何计算线性同余生成器的第k个最小数

根据维基百科,线性同余生成器由下面的递归关系定义:

X(n) = {a.X(n-1) + c} mod m
Run Code Online (Sandbox Code Playgroud)

其中0 < m,0 <= a < m,0 <= c < m,0 <= X(0) < m是指定生成整型常量.

如果价值a,c,m,X(0),和n给出,我能确定k个最小值(1 <= k <= n的)设置{X(0), X(1), ..., X(n)}非常快?(比O(n)基于排序算法的更快)

algorithm math

7
推荐指数
1
解决办法
228
查看次数

标签 统计

algorithm ×4

disjoint-sets ×1

integer ×1

math ×1

primes ×1

string ×1