zoukankan      html  css  js  c++  java
  • HDU 5444 Elven Postman (二叉树,暴力搜索)

    题意:给出一颗二叉树的先序遍历,默认的中序遍历是1.、2、……n。给出q个询问,询问从根节点出发到某个点的路径。

    析:本来以为是要建树的,一想,原来不用,其实它给的数是按顺序给的,只要搜结点就行,从根开始搜,如果要到的结点比根结点大,那么一定是向W走,

    然后去第一个结点,然后接着判定,一直走,如果找到结束就好。水题。当时想的有点复杂。

    代码如下:

    #include <cstdio>
    #include <string>
    #include <cstdlib>
    #include <cmath>
    #include <iostream>
    #include <cstring>
    #include <set>
    #include <queue>
    #include <algorithm>
    #include <vector>
    #include <map>
    
    using namespace std ;
    typedef long long LL;
    typedef pair<int, int> P;
    const int INF = 0x3f3f3f3f;
    const double inf = 0x3f3f3f3f3f3f3f;
    const double eps = 1e-8;
    const int maxn = 2e5 + 5;
    const int dr[] = {0, 0, -1, 1};
    const int dc[] = {-1, 1, 0, 0};
    int n, m;
    inline bool is_in(int r, int c){
        return r >= 0 && r < n && c >= 0 && c < m;
    }
    int a[maxn];
    
    int main(){
        int T;  cin >> T;
        while(T--){
            scanf("%d", &n);
            for(int i = 0; i < n; ++i){
                scanf("%d", &a[i]);
            }
            scanf("%d", &m);
            while(m--){
                int u;
                scanf("%d", &u);
                int rt = a[0];
                int s = 0;
                while(true){
                    if(a[0] == u){    break; }
                    if(u > a[s]){
                        printf("W");
                        for(int i = s+1; i < n; ++i){
                            if(a[i] > a[s]){
                                s = i;
                                break;
                            }
                        }
                        if(u == a[s])  break;
                    }
                    else {
                        printf("E");
                        for(int i = s+1; i < n; ++i){
                            if(a[i] < a[s]){
                                s = i;
                                break;
                            }
                        }
                        if(u == a[s])  break;
                    }
                }
                printf("
    ");
            }
        }
        return 0;
    }
    
  • 相关阅读:
    高阶函数与匿名函数
    A task in a suit and a tie:paraphrase generation with semantic augmentation解读
    利用tensorboard将数据可视化(tf1.x 和 tf2.x)
    IplImage, CvMat, Mat 的关系
    剑指OFFER之合并两个排序的链表
    整数与字符串的互相转化
    二分查找法
    集成算法
    003-决策树案例
    002-决策树构造实例
  • 原文地址:https://www.cnblogs.com/dwtfukgv/p/5722137.html
Copyright © 2011-2022 走看看