HIHO #1049 : 后序遍历 (dfs)
2016-08-08 10:05
253 查看
题目链接
前序:根+左儿子+右儿子
中序:左儿子+根+右儿子
当前是这样的状态,左右儿子也是这样的状态,dfs计算好儿子所属的区间即可
前序:根+左儿子+右儿子
中序:左儿子+根+右儿子
当前是这样的状态,左右儿子也是这样的状态,dfs计算好儿子所属的区间即可
#include<cstdio> #include<algorithm> #include<iostream> #include<cstring> #include<string> #include<cmath> #include<queue> #include<map> #include<set> #include<cstdlib> #include<vector> using namespace std; #define cl(a,b) memset(a,b,sizeof(a)) #define LL long long #define pb push_back #define gcd __gcd #define For(i,j,k) for(int i=(j);i<k;i++) #define lowbit(i) (i&(-i)) #define _(x) printf("%d\n",x) const int maxn = 3e6+10; const int inf = 1 << 28; char a[maxn],b[maxn]; void dfs(int al,int ar,int bl,int br){ if(al>ar)return ; int tot = 0; while(b[tot + bl]!=a[al])tot++; dfs(al+1,al+tot,bl,bl+tot-1); dfs(al+tot+1,ar,bl+tot+1,br); putchar(a[al]); } /* ABCDFGH BCAFDHG */ int main(){ scanf("%s%s",a,b); int n = strlen(a); dfs(0,n-1,0,n-1); puts(""); return 0; }
相关文章推荐
- hihoCoder 1049 : 后序遍历
- hihocoder 1049 后序遍历
- hihoCoder #1049 后序遍历
- 【Hihocoder】#1049 : 后序遍历
- hihoCoder 1049 : 后序遍历 (二叉树遍历)
- DFS,BFS,前序,中序,后序,层序遍历
- HihoCoder1049 后序遍历 分治水题
- 【hihoCoder】1049.后序遍历
- hihoCoder #1049 : 后序遍历
- UVa 548 Tree 根据后序遍历和中序遍历建树后DFS
- [HihoCoder]#1049 : 后序遍历
- hihocoder#1049 : 后序遍历
- hihoCoder - 1049 - 后序遍历 (二叉树的重建!!)
- hihocoder 1049 : 后序遍历
- hihocoder 1049 后序遍历树
- hihocoder 1049 后序遍历
- hihoCoder #1049 后序遍历
- hihocoder-1049 后序遍历(分治)
- hihoCoder #1049 后序遍历
- hihoCoder #1049 后序遍历