- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
给定n、m、d。答案存储在以下代码的 sum 变量中:
int x = m / d;
int sum = 0;
for (int i = 1; i <= x; i++) {
sum += mobius(i) * ((x / i) ^ n);
}
现在的问题是当 d 与 [l, r] 不同时,找到总的 sum % (10^9 + 7)与 n, m 如上所述。我只能通过蛮力做到这一点,但限制是 1 <= n, m, l, r <= 10^7。所以暴力破解无法通过时间限制。该问题是否存在一些潜在的重叠子问题和最优子结构性质,可用于动态规划求解?
链接:Mobius Function ,我已经在O(nlogn)中预先计算了莫比乌斯函数。
编辑:给定 t、n、m。其中t是测试用例的数量,
l, r 被赋予 t 次。如上所述,我们必须输出总和。
示例输入:
总人数:2
男:3,女:10
l 和 r
的值9 9
10 10
示例输出:
1
1
最佳答案
请注意,当您将 m 除以 d 来计算 x 时,x 将只有大约 2*sqrt(m)
个唯一值。
这意味着您只需为 x 的每个唯一值触发第二个循环。
同样,在x/i
的计算中,(x/i)<只会有大约
。这意味着您只需为每个唯一值计算 2*sqrt(x)
个唯一值(x/i)^n
。
对于 x/i
的每个唯一值,都会有一系列 i 值产生该值。
然后,您需要将产生相同输出的所有 i 值相加 mobius[i]
。这可以通过用莫比乌斯函数的累积和准备一个数组来完成(这个累积和称为 Mertens function )。
例如,如果
M[k] = sum[ Mobius(i) for i = 1..k ]
然后
sum[ Mobius(i) for i = low..high ] = M[high] - M[low-1]
总体而言,复杂度为 O( sqrt(n) * sqrt(n) ) = O(n)
(加上计算莫比乌斯函数所花费的时间)。
关于algorithm - 这个问题可以用动态规划解决吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27422084/
我正在创建我的第一个 WAR 文件。我一直在试验 ant buildfile 语法,我的 buildfile 的第一部分从我的 Eclipse 项目中获取内容并将其放入 /dist 文件夹中,然后将其
我是一名学习 SQL 和 PHP 的学生,我接到了一项任务,要使用 PHP 和 mySQLi 创建学生反馈表,我真的一直在思考如何为项目设计数据库! 我正在创建一个系统,用户可以在其中登录网页,如果用
这个问题在这里已经有了答案: Is it possbile to test for expected errors when the testee exits with failure using
我目前正在设计和开发一个 Web 应用程序,该应用程序有可能快速增长。我将提供一些一般信息,然后继续我的问题。我会说我是一名中级网络程序员。 以下是一些规范:MySQL - 数据库后端PHP - 用于
我不知何故无法在我的日志解析器应用程序中实现报告功能。 这是我目前所做的: 我正在编写一个应用程序,它读取日志文件并在字符串中搜索可以在用户配置文件中定义的多个正则表达式。对于从配置中解析的每个所谓的
我有兴趣学习如何在多开发团队场景中设计/规划 Web 应用程序开发。 假设“项目经理/负责人”的角色: 成功的 Web 应用程序开发需要哪些“文档”? 需要什么 UML 图,需要什么程度? 在设计/计
table a (t_a): id name last first email state country 0 sklass klass steve
我们建立了一个广泛使用 JQuery UI 的 AJAX 网站。我们有 30 多个自制的 JQuery UI 小部件(动态加载)。我们到处都使用 JQuery native 小部件:对话框、 slid
我是一名优秀的程序员,十分优秀!