UVA 548 RE
来源:互联网 发布:java解决高并发 编辑:程序博客网 时间:2024/06/05 20:49
中序和后序建树,求出最短路径叶子结点并打印之
坑爹的UVA 总是RE,估计是栈不够用了,难道要手工做。。。
#include <iostream>#include <vector>#include <cstdio>#include <cstdlib>#include <cmath>#include <algorithm>#include <cstring>#include <stack>#include <memory>using namespace std;////#define MAXNUM 9999999int pre[10010];int ino[10010];char input[10010];int findnum(int num){int i;for (i = 0; ino[i] != 0; i++){if (ino[i] == num)return i;}return 0;}struct result{int value;int minpos;};result minLeave(int preL, int preR, int inoL, int inoR){int i, j;result ans;//叶子结点if (preL == preR || inoL == inoR){ans.value = pre[preL];ans.minpos = preL;return ans;}int num = pre[preL];int inumpos = findnum(num);result left, Right;if (preL + 1 <= preL + inumpos - inoL){left = minLeave(preL + 1, preL + inumpos - inoL, inoL, inumpos - 1);}else{left.value = MAXNUM;}if (preL + inumpos - inoL + 1 <= preR){Right = minLeave(preL + inumpos - inoL + 1, preR, inumpos + 1, inoR);}elseRight.value = MAXNUM;if (Right.value > left.value){ans.value = left.value + num;ans.minpos = left.minpos;return ans;}else{ans.value = Right.value + num;ans.minpos = Right.minpos;return ans;}}int main(){freopen("F:\\input.txt","r",stdin );///int i, j;int len;while (1){//读取前序和中序输入序列memset(pre, 0, sizeof(pre));memset(ino, 0, sizeof(ino));//Leavenum = 0;if (gets(input) == NULL)break;len = strlen(input);j = 0;for (i = 0; i < len; i++){while (input[i] == ' ' && i < len)i++;pre[j] = 0;while(input[i] && isdigit(input[i])) { pre[j] = pre[j] * 10 + input[i] - '0'; i++; } j++; if(!input[i]) break;}gets(input);len = strlen(input);j = 0;for (i = 0; i < len; i++){while (input[i] == ' ' && i < len)i++;ino[j] = 0;while(input[i] && isdigit(input[i])) { ino[j] = ino[j] * 10 + input[i] - '0'; i++; } j++; if(!input[i]) break;}//数据分析和计算result minl = minLeave(0, j - 1, 0, j - 1);printf("%d\n", pre[minl.minpos]);}///return 0;}
- UVA 548 RE
- 10562UVa看图写树 RE
- UVa 908 (RE-connectong computer sites )
- UVa 908 - Re-connecting Computer Sites
- UVa 908 Re-connecting Computer Sites
- RE
- re
- re
- RE
- re
- re
- re
- re
- re
- re
- Re
- re
- re
- c#运行效率系列1
- C++ new和delete重载
- SCVMM 2008 r2 升级 SCVMM 2012
- WPF之MVVM解析
- 发卡公司对相关各方的要求
- UVA 548 RE
- WCF并发模型
- IBM科学家开创碳纳米管性能测量新方法
- Java的环境变量配置五大步骤
- 古希腊神话故事:菲勒美拉
- C#读取QQWry.Dat文件实现IP查询
- 关于年长程序员的5个误传
- 黑马程序员_Java学习日记10_集合框架2
- 黑马程序员--装箱与拆箱