【USACO3.4.2】美国血统
2015-04-07 21:30
232 查看
这个…… 就是给树的前序中序遍历,求后序。
没啥好说的啊…… 任何一本书上都有讲解的
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
int zhong[100]={0}, qian[100]={0};
int zuo[100]={0}, you[100]={0};
int len;
char s[100];
void init()
{
gets(s);
len = strlen(s);
for (int i = 0; i != len; ++ i)
zhong[i + 1] = s[i] - 'A' + 1;
gets(s);
for (int i = 0; i != len; ++ i)
qian[i + 1] = s[i] - 'A' + 1;
}
int p = 0;
int cal(int L, int R)
{
if (L > R) return 0;
++ p;
int tmp;
for (int i = L; i <= R; ++ i)
if (zhong[i] == qian[p])
{
tmp = i;
break;
}
int zhi = qian[p];
zuo[zhi] = cal(L, tmp - 1);
you[zhi] = cal(tmp + 1, R);
return zhi;
}
void through(int now)
{
if (zuo[now]) through(zuo[now]);
if (you[now]) through(you[now]);
cout<< (char)(now + 'A' - 1);
}
void doit()
{
through(cal(1, len));
cout<<endl;
}
int main()
{
init();
doit();
return 0;
}
/*
ABEDFCHG
CBADEFGH
*/
没啥好说的啊…… 任何一本书上都有讲解的
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
int zhong[100]={0}, qian[100]={0};
int zuo[100]={0}, you[100]={0};
int len;
char s[100];
void init()
{
gets(s);
len = strlen(s);
for (int i = 0; i != len; ++ i)
zhong[i + 1] = s[i] - 'A' + 1;
gets(s);
for (int i = 0; i != len; ++ i)
qian[i + 1] = s[i] - 'A' + 1;
}
int p = 0;
int cal(int L, int R)
{
if (L > R) return 0;
++ p;
int tmp;
for (int i = L; i <= R; ++ i)
if (zhong[i] == qian[p])
{
tmp = i;
break;
}
int zhi = qian[p];
zuo[zhi] = cal(L, tmp - 1);
you[zhi] = cal(tmp + 1, R);
return zhi;
}
void through(int now)
{
if (zuo[now]) through(zuo[now]);
if (you[now]) through(you[now]);
cout<< (char)(now + 'A' - 1);
}
void doit()
{
through(cal(1, len));
cout<<endl;
}
int main()
{
init();
doit();
return 0;
}
/*
ABEDFCHG
CBADEFGH
*/
相关文章推荐
- 【USACO题库】3.4.2 American Heritage美国血统
- 【USACO题库】3.4.2 American Heritage美国血统
- JZOJ1294.【USACO题库】3.4.2 American Heritage美国血统
- 【洛谷P1827】【USACO】 美国血统 American Heritage 由二叉树两个序列求第三个序列
- 【洛谷P1827】【USACO】 美国血统 American Heritage 由二叉树两个序列求第三个序列
- USACO 3.4 American Heritage美国血统 (树的遍历)
- usaco3.4.3美国血统
- USACO&nbsp;3.4&nbsp;美国血统
- 3121 美国血统
- usaco 3.4.2
- [USACO3.4.2]Electric Fence
- 劣质的草(USACO 美国信息学月赛)【7.13考试第一题】
- USACO3.4.2 Electric Fence (fence9)
- USACO3.4.2--American Heritage
- usacoP1827 美国血统 American Heritage(递归&&二分&&树)
- C++&Pascal&Python——【USACO 3.4.2】——Electric Fence
- American Heritage美国血统
- 洛谷P1827 美国血统 American Heritage
- USACO/heritage 3.4.2 前序 中序 后序
- USACO3.4.2 Electric Fence (fence9)