博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P1087-FBI树
阅读量:5334 次
发布时间:2019-06-15

本文共 1731 字,大约阅读时间需要 5 分钟。

1 #include 
2 #define _for(i,a,b) for(int i = (a);i < b;i ++) 3 typedef long long ll; 4 using namespace std; 5 string S; 6 int N; 7 inline ll read() 8 { 9 ll ans = 0;10 char ch = getchar(), last = ' ';11 while(!isdigit(ch)) last = ch, ch = getchar();12 while(isdigit(ch)) ans = (ans << 1) + (ans << 3) + ch - '0', ch = getchar();13 if(last == '-') ans = -ans;14 return ans;15 }16 inline void write(ll x)17 {18 if(x < 0) x = -x, putchar('-');19 if(x >= 10) write(x / 10);20 putchar(x % 10 + '0');21 }22 struct TreeNode23 {24 char val;25 TreeNode *left;26 TreeNode *right;27 };28 char judge(int le,int ri)29 {30 bool oflag = false;31 bool zflag = false;32 _for(i,le,ri+1)33 {34 if(S[i]=='0')35 zflag = true;36 else if(S[i]=='1')37 oflag = true;38 }39 if(zflag && !oflag)40 return 'B';41 else if(!zflag && oflag)42 return 'I';43 else44 return 'F';45 return -1;46 }47 TreeNode* build(int le,int ri)48 {49 TreeNode* tmp = (TreeNode*)malloc(sizeof(TreeNode));50 int mi = (le+ri)/2;51 tmp->val = judge(le,ri);52 if(le!=ri)53 {54 tmp->left = build(le,mi);55 tmp->right = build(mi+1,ri);56 }57 else58 tmp->left = tmp->right = NULL;59 return tmp;60 }61 void postorder(TreeNode *root)62 {63 if(!root)64 return ;65 postorder(root->left);66 postorder(root->right);67 printf("%c",root->val);68 }69 int main()70 {71 TreeNode* root;72 scanf("%d",&N);73 cin >> S;74 root = build(0,pow(2,N)-1);75 postorder(root);76 return 0;77 }

 

转载于:https://www.cnblogs.com/Asurudo/p/11286525.html

你可能感兴趣的文章
POJ 3461 还是两种方法
查看>>
【译】SSH隧道:本地和远程端口转发
查看>>
win8.1安装Python提示缺失api-ms-win-crt-runtime-l1-1-0.dll问题
查看>>
mysql授权grant
查看>>
图片点击轮播(三)-----2017-04-05
查看>>
【乱搞】【AOJ-574】爱就大声说出来
查看>>
RESTful记录-RESTful服务
查看>>
工程项目缺少C文件会怎么样?STM32 flasher
查看>>
Clojure编写一个阶乘程序 使用递归
查看>>
zbb20190703 搭建vue工程并配置idea开发工具
查看>>
Android Studio的git功能的使用介绍
查看>>
【转载】Vim查找替换及正则表达式的使用
查看>>
u3D大场景的优化
查看>>
CodeForces 180C Letter
查看>>
[原]SQL相关路径查询脚本
查看>>
【进程线程与同步】5.3 创建与联接线程
查看>>
判断两个字符串是否相等【JAVA】
查看>>
C# 使用 SmtpClient 发送邮件注意项
查看>>
C#多线程学习(五) 多线程的自动管理(定时器)
查看>>
Hadoop产生背景
查看>>