在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 生日开业蛋糕祝福语简短