题解:P10990 [蓝桥杯 2023 国 Python A] 彩色二叉树
审题
这里有一个完全二叉树。
分析
首先,根据题目可知,这是一个完全二叉树,因此可知深度不超过
100分代码
#include<bits/stdc++.h>
using namespace std;
int z[1000005];
int c[1000005][55];
void sign(int x,int d,int nu){
c[x][d]=nu;
if(x==1||d==0) return ;
sign(x/2,d-1,nu);
}
int find(int x,int step){
if(x==0) return 0;
int maxn=0;
for(int i=step;i<=54;i++){
maxn=max(maxn,c[x][i]);
}
return max(maxn,find(x/2,step+1));
}
int main(){
int n,q;
cin>>n>>q;
for(int i=1;i<=q;i++){
int op;
cin>>op;
if(op==1){
int x,y;
cin>>x>>y>>z[i];
if(y>54)y=54;
sign(x,y,i);
}
else{
int x;
cin>>x;
cout<<z[find(x,0)]<<"\n";
}
}
return 0;
}