杭电5 :Cute Tree
题面:给一段伪代码,进行模拟,求生成的节点。
解析:问题其实和节点信息没什么关系,只需要按找题目要求,递归划分区间长度,同时记录划分次数即可。
或者直接用伪代码方法建树。
代码:
#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); } }