2 条题解
-
0
#include<bits/stdc++.h> using namespace std; char s[1025]; void dfs(int l, int r) { int mid=(l+r)>>1; if(l!=r)//二叉树后序遍历:左子树、右子树、根节点 { dfs(l,mid);//左子树 dfs(mid+1,r);//右子树 } //根节点 int sum0=0,sum1=0; for(int i=l;i<=r;i++) { if(s[i]=='0')sum0++; else sum1++; } if(sum0>0&&sum1>0)printf("F"); else if(sum0>0)printf("B"); else printf("I"); } int main() { int n;scanf("%d",&n); scanf("%s",s+1); dfs(1,(1<<n)); return 0; } -
0
#include<bits/stdc++.h> using namespace std; char s[1025]; void dfs(int l, int r) { int mid=(l+r)>>1; if(l!=r)//二叉树后序遍历:左子树、右子树、根节点 { dfs(l,mid);//左子树 dfs(mid+1,r);//右子树 } //根节点 int sum0=0,sum1=0; for(int i=l;i<=r;i++) { if(s[i]=='0')sum0++; else sum1++; } if(sum0>0&&sum1>0)printf("F"); else if(sum0>0)printf("B"); else printf("I"); } int main() { int n;scanf("%d",&n); scanf("%s",s+1); dfs(1,(1<<n)); return 0; }
- 1
信息
- ID
- 114
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 5
- 标签
- 递交数
- 127
- 已通过
- 50
- 上传者