在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 送给学长毕业祝福语简短