题源:AcWing 3537. 树查找
本来想vector模拟这个完全二叉树来着,结果发现vector对内存访问有要求
比如:
#include <iostream>
#include <cstring>
#include <vector>
#include <cmath>
using namespace std;
int n,bit,k;
vector<vector<int>> v;
int main()
{
cin>>n;
for(int i=0;i<n;i++){
int x,num=pow(2,bit);
vector<int> e;
for(int j=0;j<min(num,n-i);j++){
cin>>x;
e.push_back(x);
}
v.push_back(e);
i+=pow(2,bit++)-1;
}
cin>>k;
if(k-1>=bit)puts("EMPTY");
else for(int i=0;i<v[k-1].size();i++)cout<<v[k-1][i]<<' ';
}
一定要先逐个vector的往里push_back
不能写成
v[bit].push_back(x);
不然会seg