onlien_judge_1368
来源:互联网 发布:ubuntu 主题 编辑:程序博客网 时间:2024/06/18 18:20
#include <iostream>#include <vector>#include <cstdio>using namespace std;struct BiTNode{ int data; int index; int leftnode,rightnode;};void createTree(BiTNode *T, int n){ int i,t; for(i=1; i<=n; ++i) { scanf("%d%d%d",&T[i].data, &T[i].leftnode, &T[i].rightnode); if(T[i].leftnode > T[i].rightnode) { t = T[i].leftnode; T[i].leftnode = T[i].rightnode; T[i].rightnode = t; } T[i].index = i; }}void resultPrint(BiTNode *T, int ind, vector<int> &v, int cursum, int sum){ cursum += T[ind].data; v.push_back(T[ind].index); bool isLeaf = (T[ind].leftnode==-1) && (T[ind].rightnode==-1); if(cursum == sum && isLeaf) { printf("A path is found:"); vector<int>::iterator iter = v.begin(); for(; iter!=v.end(); ++iter) printf(" %d", *iter); printf("\n"); } if(T[ind].leftnode != -1) resultPrint(T, T[ind].leftnode, v, cursum, sum); if(T[ind].rightnode != -1) resultPrint(T, T[ind].rightnode, v, cursum, sum); v.pop_back();}int main(){ BiTNode T[10001]; int n,sum; vector<int> v; while(~scanf("%d%d",&n,&sum)) { createTree(T, n); printf("result:\n"); resultPrint(T, 1, v, 0, sum); v.clear(); } return 0;}
这个题目真的很猥琐。。一定不要忽视细节。。要求按照字典排序输出结果……
0 0
- onlien_judge_1368
- python 实现用ISBN从豆瓣获取图书信息
- Codeforces 14D Two Paths 【树的直径】
- 《Linux内核设计与实现》与《Linux内核源代码情景分析》读书笔记
- 支持向量机分类入门实用指南
- spring4整合quartz2定时器启动报:batch acquisition of 0 triggers
- onlien_judge_1368
- 斯坦福大学深度学习笔记:逻辑回归
- Linux安装软件总结
- CNN的新进展(2)
- OPENCV图像处理基础(一)读取一张图片
- 第三周项目4:穷举法解决组合问题--百钱买百鸡
- 第三周项目3——输出型号图(1)菱形
- stl源码剖析学习笔记(一)重点数据结构概览
- Nginx+Tomcat实现负载均衡、Redis实现Tomcat session会话共享