hdu 5444 Elven Postman (DFS)
2015-09-14 17:42
381 查看
读懂题意就是个水题了。
给一棵树,左儿子权值大于其父亲,右儿子权值小于其父亲。
给出若干询问,输出从根节点到指定节点的路径。
给一棵树,左儿子权值大于其父亲,右儿子权值小于其父亲。
给出若干询问,输出从根节点到指定节点的路径。
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; struct Node{ int l,r; }p[1001]; void add(int u,int a) { if(p[u].l==0&&a>u) {p[u].l=a;return;} if(p[u].r==0&&a<u) {p[u].r=a;return;} if(a>u) add(p[u].l,a); if(a<u) add(p[u].r,a); } void Find(int u,int x) { if(u==x) return; if(x<u){ printf("E"); Find(p[u].r,x); } if(x>u){ printf("W"); Find(p[u].l,x); } } int main() { int T,a,n,r; cin>>T; while(T--) { scanf("%d%d",&n,&r); p[r].l=p[r].r=0; for(int i=1;i<n;++i){ scanf("%d",&a); add(r,a); p[a].l=p[a].r=0; } int q; scanf("%d",&q); while(q--) { scanf("%d",&a); Find(r,a); puts(""); } } return 0; }
相关文章推荐
- Android中Socket通信,模拟了一个简单的CS聊天室
- [.Net码农].NET 分布式架构开发实战 之 故事起源
- 开发者必备的十八大Android开发资源
- 如何实现移动端弹出层弹出的时候页面不能滑动,关闭弹出层时页面恢复滑动
- Asp.Net_抓包解析xml文件为json
- [SD喜爱语言PK大赛]001.PHP vs Node.js
- iOS cocoapods
- C#递归批量清空TEXTBOX
- CentOS 6.3安装NodeJS环境
- push到github时,每次都要输入用户名和密码的问题
- Java中数组和集合的区别
- 2-sat建图以及刷题记录~~
- C程序设计语言(第2版)
- C文件读取
- PHP_Get与Post提交后台取值
- val() 和attr() 取值的问题
- MyEclipse快捷键使用方法(很实用)
- Android EditText与第三方输入法删除键(退格键)冲突问题解决方案
- Linux文件管理系统
- Android 使用动态加载框架DL进行插件化开发