题面:给一段伪代码,进行模拟,求生成的节点。
解析:问题其实和节点信息没什么关系,只需要按找题目要求,递归划分区间长度,同时记录划分次数即可。
或者直接用伪代码方法建树。
代码:
#include<bits/stdc++.h>
using namespace std;
int t,n;
int a;
int bt(int n)
{
int num=0;
if(n==1) num=num ;
else if(n==2) num+=2;
else{
num+=3;
int x=n/3+(n%3!=0),y=(n-x)/2,z=n-x-((n-x)/2);
num+=bt(x)+bt(y)+bt(z);
}
return num;
}
int main(){
scanf("%d",&t);
while(t--){
scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%d",&a);
printf("%d\n",bt(n)+1);
}
} 


京公网安备 11010502036488号