USACO American Heritage 解题报告
来源:互联网 发布:长沙知豆电动汽车租赁 编辑:程序博客网 时间:2024/05/01 22:37
这道题是给了树的中序遍历和前序遍历,求后序遍历。
我的解法中有大量的字符串合并操作,实际上完全不需要,直接输出字符即可。
/* ID: thestor1 LANG: C++ TASK: heritage */#include <iostream> #include <cmath> #include <cstdio> #include <cstring> #include <climits> #include <cassert> #include <string> #include <vector> #include <set> #include <queue> #include <stack> #include <algorithm> using namespace std;string tree(int lin, int rin, int lpre, int rpre, string in, string pre){// cout<<lin<<", "<<rin<<", "<<lpre<<", "<<rpre<<", "<<in<<", "<<pre<<endl;if(lin > rin){return "";}if(lin == rin){return string(1, in[lin]);}int root = lin;// cout<<lpre<<":"<<pre[lpre]<<endl;while(in[root] != pre[lpre] && root <= rin){root++;}assert(root <= rin);int left = root - 1 - lin + 1;// cout<<"root: "<<root<<", left: "<<left<<endl;return tree(lin, root - 1, lpre + 1, lpre + 1 + left - 1, in, pre) + tree(root + 1, rin, lpre + left + 1, rpre, in, pre) + string(1, in[root]);}int main() {FILE *fin = fopen ("heritage.in", "r");FILE *fout = fopen ("heritage.out", "w");//in-orderchar buff[27];fscanf(fin, "%[^\n]%*c", buff);string in(buff);fscanf(fin, "%[^\n]%*c", buff);string pre(buff);int n = in.length();string post;post.reserve(n);post = tree(0, n - 1, 0, n - 1, in, pre);// cout<<post<<endl;fprintf(fout, "%s\n", post.c_str());return 0; }
- USACO American Heritage 解题报告
- USACO 3.4 American Heritage (heritage)
- usaco American Heritage
- usaco American Heritage
- USACO 3.4 American Heritage
- USACO American Heritage
- USACO 3.4.3 American Heritage
- USACO-Section 3.4 American Heritage (分治)
- American Heritage
- American Heritage
- USACO section 3.4 American Heritage(二叉树序列)
- USACO Training 3.4.2 American Heritage 题解与分析
- USACO 3.4 American Heritage美国血统 (树的遍历)
- 【USACO题库】3.4.2 American Heritage美国血统
- USACO 3.4 American Heritage美国血统 (树的遍历)
- 【USACO题库】3.4.2 American Heritage美国血统
- JZOJ1294.【USACO题库】3.4.2 American Heritage美国血统
- C++——【USACO 3.4.1】——American Heritage
- ubuntu系统下adb连接小米2[无需装驱动]
- asp
- LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
- 心有所思
- [HGE]-源码分析-8 ini
- USACO American Heritage 解题报告
- 左连接、右连接、交叉连接、全外连接
- 华东交通大学2013年ACM“双基”程序设计竞赛 解题报告
- 软件高手是怎么样炼成的?
- 用java源代码学数据结构<三>:ArrayList 详解
- 函数
- boost::asio发送与传输相关的几个函数,备忘
- Leetcode Pascal's Triangle II
- Ubuntu 下用 wifi 连接 Android 调试程序