在Python中查找给定数组的所有子数组总和的2次幂总和的程序
假设我们有一个列表A。我们已经获取了A的所有非空子列表,因为我们知道具有n个元素的列表l具有(2n-1)个非空子列表。现在对于每个子列表,他计算sublist_sum(元素的总和并用S1,S2,S3,...,S(2N-1)表示)。有一个特殊和P使得P=2S1+2S2+2S3....+2S(2N-1)。我们必须找到P。如果P太大,则返回Pmod(10^9+7)。
所以,如果输入像A=[2,2,3],那么输出将是
{2}所以2^2=4
{2}所以2^2=4
{3}所以2^3=8
{2,2}所以2^4=16
{2,3}所以2^5=32
{2,3}所以2^5=32
{2,2,3}所以2^7=128
总和是4+4+8+16+32+32+128=224
示例
让我们看看以下实现以获得更好的理解-
def solve(A):
ans=1
m=10**9+7
for el in A:
ans *= (1+pow(2,el,m))
ans %= m
return (m+ans-1) % m
A = [2,2,3]
print(solve(A))输入
[2,2,3]输出结果
224
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语