UVA 548 Tree
来源:互联网 发布:华为云计算培训学校 编辑:程序博客网 时间:2024/05/18 00:34
~~题目链接~~
题目大意:给出前序遍历和后序遍历, 求出树中根节点到叶节点的最短路径上叶节点的值, 如果有多条选叶节点最小的。
code:
#include <iostream>#include <sstream>#include <vector>#include <algorithm>#define inf 0x7fffffffusing namespace std;int ans = 0, Min = 0;vector<int> V1, V2;void build(int n, int s1, int s2, int sum){ if(n<=0) return ; if(n == 1) { if(sum+V1[s1]<Min) { ans = V1[s1]; Min = sum+V1[s1]; } if(sum+V1[s1] == Min && ans>V1[s1]) ans = V1[s1]; return ; } vector<int>::iterator it = find(V1.begin(), V1.end(), V2[s2]); int s3 = it-V1.begin();//在中序树中的跟节点位置 sum += V2[s2]; build(s3-s1, s1, s2-(n-(s3-s1+1))-1, sum); build(n-(s3-s1+1), s3+1, s2-1, sum);}int main(){ int i = 0; string s1, s2; while(getline(cin, s1)) { ans = 0; Min = inf; V1.clear(), V2.clear(); stringstream ss; ss<<s1; while(ss>>i) V1.push_back(i); ss.clear(); getline(cin, s2); ss<<s2; while(ss>>i) V2.push_back(i); build(V1.size(), 0, V1.size()-1, 0); cout<<ans<<endl; } return 0;}
- UVa 548 Tree
- uva 548 Tree
- uva 548 - Tree
- uva 548 - Tree
- UVa 548 - Tree
- uva 548 Tree
- uva 548 - Tree
- 数据结构 uva 548-Tree
- UVA 548 - Tree
- UVa 548 - Tree
- UVa 548 - Tree
- uva-548 Tree
- UVA 548 Tree
- UVA 548 tree
- uva 548 -Tree
- uva 548 Tree
- 548 - Tree (UVa OJ)
- UVA 548 Tree
- linux wireless tools
- 使用LaTeX和ModernCV遇到的问题
- Shell之前世今生
- Java堆内存的10个要点
- Everpad: Ubuntu 上的 EverNote 客户端
- UVA 548 Tree
- 请教如何在QT自定义线程类中使用QTimer定时器功能
- CSS基础
- 工厂模式与抽象工厂模式
- test
- MFC实现串口通讯编程
- 糗百爬虫
- Qt5中动态对话框(用QtUiTools /QUiLoader实现)的各种问题
- ZOJ 3332 Strange Country II(竞赛图中的哈密顿路)