首页 > 解决方案 > 传递给函数 F 时求子序列的总和

问题描述

给定一个大小为 N 和整数 K 的数组,当给定函数 F 时,我们需要找到长度为 K 的所有子序列的输出总和,其中函数 F 返回给定子序列的总和 * GCD 给定子序列。

示例:假设 N=2 和 K=1,并且数组只有两个元素 [1,2],那么这里的答案是 5,因为只有两个子序列:[1],[2]。

函数 F 的子序列 [1] 的输出为 1*1 = 1 函数 F 的子序列 [2] 的输出为 2*2 = 4

所以总数是 1+4=5。

如何为给定的长度为 N 的数组和给定的整数 K 找到它,其中它们的范围都可以达到 10000,数组元素的范围可以达到 50000。

显然这个和可能非常大,所以我们需要将输出作为模块提供给非常大的素数 998244353。

标签: arraysalgorithmdynamic-programming

解决方案


推荐阅读