高维前缀和
复杂度 2^n*n
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=(1<<21); ll a[N]; int n; int main(){ scanf("%d",&n);int p=0; for(int i=0;i<n;i++) scanf("%lld",&a[i]); for(int i=1;i<n;i<<=1){p++; for(int j=0;j<n;j++){ if((j&(1<<p-1))) a[j]+=a[(j^(1<<p-1))]; } }for(int i=0;i<n;i++) printf("%lld\n",a[i]);return 0; }