关于P6324
  • 板块题目总版
  • 楼主queenbee
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/9/28 19:00
  • 上次更新2023/11/2 17:42:41
查看原帖
关于P6324
789564
queenbee楼主2023/9/28 19:00

弱弱问一句,这个题输出结果一定要和题解一样吗,做了好久了,还是不对>_<

附代码,望大神指导

#include<bits/stdc++.h>
using namespace std;
const int N=4e4;
int n;
int tree[N],tree1[N];
int fl(int n){
	int sum=0;
	while(n>0){
		n/=2;
		sum++;
	}
	return sum;
}
void bd(int i,int n){
	if(fl(i)==n){
		return;
	} 
	int sum=pow(2,fl(i)-1);
	tree[2*i]=tree[i]+sum;
	tree[2*i+1]=tree[2*i]+sum;
	bd(2*i,n);
	bd(2*i+1,n);
} 
void fs(int n){
	if(tree[n]==0){
		return;
	}
	cout<<tree[n]<<" ";
	fs(2*n);
	fs(2*n+1);
}
int main(){
	cin>>n;
	tree[1]=1;
	bd(1,n);
	fs(1);
	return 0;
}

我是蒟蒻

2023/9/28 19:00
加载中...