首页 > 其他分享 >洛谷 P1087 FBI树

洛谷 P1087 FBI树

时间:2022-12-12 19:38:08浏览次数:44  
标签:洛谷 cout int res dfs P1087 字符串 FBI 节点


题目大意:

已知一棵树由字符串组成,

规定:

若节点全1 把这节点称为I节点。

若节点全0 把节点称为B节点。

若节点含0同时含1 把节点称为F节点。

现在有一个字符串N长,左子树是前一半字符串,右子树是后一半字符串。最小的分解节点为一个字符的字符串。我们保证字符串的长度是2的次幂。

求这棵树的后序遍历。

解题思路:

这种树的遍历题目,我们通过数组的下标传进去dfs来进行树的遍历。直接模拟即可。

#include <bits/stdc++.h>
using namespace std;
const int MAXN=1024+10;
int arr[MAXN];
void dfs(int l,int r){
if(l==r){
if(arr[l]==1)cout<<"I";
else cout<<"B";
return ;
}
int m=l+(r-l)/2;
dfs(l,m);
dfs(m+1,r);
int res[2]={0};
for(int i=l;i<=r;i++)
{
res[arr[i]]++;
}
if(res[0]!=0&&res[1]!=0)cout<<"F";
else if(res[0]!=0)cout<<"B";
else cout<<"I";
}
int main(){
int n;cin>>n;
string str;
getline(cin,str);
getline(cin,str);
for(int i=0;i<(int)str.size();i++){
arr[i+1]=str[i]-'0';
}
dfs(1,pow(2,n));
cout<<endl;
return 0;
}

 

标签:洛谷,cout,int,res,dfs,P1087,字符串,FBI,节点
From: https://blog.51cto.com/u_15910522/5931528

相关文章

  • 洛谷 P1088 火星人(乱搞)
    题目大意:已知有一串数字,问在原来的数字串的字典序加m后,应该输出多少解题思路:最简便的做法是用next_permutation,这个生成的全排列可以按照字典序递增,这里我用的是搜索的方法......
  • 洛谷 P1113 杂务(拓扑排序,递归)
    题目大意:有一个有向无圈图,每个节点看作一个任务,一个任务需要完成必须先完成父亲节点的任务,每个任务都有耗时。假设现在所有不相关任务都可以并行执行,问最短多少时间可以把所......
  • 洛谷 P1996 约瑟夫问题
    问题简介:小朋友围城一圈,从1号开始报数,报到M的那位同学出局,然后下一位同学报1,循环上述过程直到所有同学出局。输出依次出局的小朋友的号码解题思路:没什么好说的,就是模拟,出局......
  • 洛谷 P1233 木棍加工(贪心,递增子串DP)
    题目大意:有矩形A1,A2......An.每个矩形有长宽w,h。现在已知cost:(1)若矩形a的w,h小于矩形b的w,h,那么没有cost(2)其它情况cost+1.现在已知矩形A1,A2...,问怎么得到最少cost.解题思......
  • 洛谷 P1057 传球游戏(背包DP)
    题目大意:有n个人围成一圈,每个人可以把手上的球传给左边或者右边,现在小明开始传球,问m次后,把球传回给自己的次数。解题思路:考虑DP,使用带记忆的DP, 首先我们的状态可以设为[还......
  • 洛谷 P5143 攀爬者 题解
    原题链接P5143攀爬者解析内心OS第一眼看上去:他**滴,这么离谱的公式,这还是正常的橙题吗?1分钟后······这么简单的题,还好意思当橙题?(请忽略上方内容)......
  • 「题解」洛谷 P8850 [JRKSJ R5] Jalapeno and Garlic
    2022.12upd:原先代码锅了,重写了一份。看上去是比较常规的题,应当需要更灵敏的直觉和更快的速度解决这道题。首先考虑若已经确定一个\(x\),那么贪心修改策略就是随便找一个......
  • 「题解」洛谷 P8848 [JRKSJ R5] 1-1 B
    首先不考虑只有\(1\)或者只有\(-1\)的平凡情况。令\(z\)为\(1\)的个数,\(f\)为\(-1\)的个数,若有\(f\geqz\),那么可以构造使得最大子段和为\(1\)(因为有\(1\)......
  • 洛谷 P1786 帮贡排序 题解
    原题链接P1786帮贡排序解析实现方法一看题:这不就是道排序吗?但是——用啥办法呢?这自带的排序方法,肯定是不能用了那么我们就来写一个cmp排序函数吧!但是——输出排......
  • 题解 洛谷 P2885 [USACO07NOV]Telephone Wire G
    1.题面描述题目链接给出\(n\)棵树的高度。你可以进行任意次操作,每次操作形如:把某棵树增高\(x\),代价为\(x^2\)(注意:不能将一棵树的高度减少)。在操作完之后,一个状态......