哈达玛矩阵乘法
作者: 赵晓鹏时间限制: 1S章节: 递归与分治
输入说明 :
见问题描述。
输出说明 :
见问题描述。
输入范例 :
1
4 -6
输出范例 :
-2 10
#include <iostream>
#include <vector>
using namespace std;
vector<int>res;
void cal(int len, int*v){if(len==1){res.push_back(v[0]);return;}len=len/2;int left[len],right[len];for(int i=0;i<len;++i){left[i]=v[i];right[i]=v[i];}for(int i=len;i<2*len;++i){left[i-len]+=v[i];right[i-len]-=v[i];}cal(len, left);cal(len, right);
}
int main(){int k;cin>>k;int len=1;for(int i=1;i<=k;++i){len*=2;}int v[len];for(int i=0;i<len;++i){cin>>v[i];}cal(len, v);for(long long unsigned int i=0;i<res.size();++i){if(i==res.size()-1){cout<<res[i];}else{cout<<res[i]<<' ';}}return 0;
}