标签:include pre bsp sharp struct mes space argv ide
#include <iostream> using namespace std; struct point{ int r,l;//左孩右孩 int c;//在第几层 int f;//父节点 }p[20]; int c[1000]={0};//储存第i层节点个数 int n,w,h,ma; int main(int argc, char *argv[]) { int i,cc,w=0; cin>>n; if(n==1){cout<<1<<" "<<1;return 0;} if(n==0){cout<<0<<" "<<0;return 0;} for(i=1;i<=n;i++) { cin>>p[i].r>>p[i].l; p[p[i].r].f=i; p[p[i].l].f=i; } p[1].f=-1; p[1].c=1; for(i=2;i<=n;i++) p[i].c=p[p[i].f].c+1; cc=p[n].c; for(i=1;i<=n;i++) if(p[i].c==cc)w++; cout<<w<<‘ ‘<<cc; return 0; }
我也不知道能不能这么写吧虽然,反正看起来蛮对的。
深搜↓
#include<stdio.h> #include<string.h> int a[1000][2],s[1000]; //s[i]=x表示二叉树第i层有x个节点 int i,n,maxHight,maxWide; void dfs(int i,int k) //i表示当前搜索的是第i个节点。k表示当前搜索到二叉树的第k层。 { s[k]=s[k]+1;//s[k]表示二叉树中第k层的节点数目 if(k>maxHight) maxHight=k; if(a[i][0]!=0) dfs(a[i][0],k+1); if(a[i][1]!=0) dfs(a[i][1],k+1); } int main() { scanf("%d",&n); memset(a,0,sizeof(a)); memset(s,0,sizeof(s)); for(i=1;i<=n;i++) scanf("%d%d",&a[i][0],&a[i][1]); maxHight=0; dfs(1,1); maxWide=0; for(i=1;i<1000;i++) if(s[i]>maxWide) maxWide=s[i]; printf("%d %d",maxWide,maxHight); return 0;
标签:include pre bsp sharp struct mes space argv ide
原文地址:https://www.cnblogs.com/cici08/p/9304278.html