zoukankan      html  css  js  c++  java
  • HDU 5323 SOLVE THIS INTERESTING PROBLEM 爆搜

    链接

    Solve this interesting problem

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 511    Accepted Submission(s): 114


    Problem Description
    Have you learned something about segment tree? If not, don’t worry, I will explain it for you.
    Segment Tree is a kind of binary tree, it can be defined as this:
    - For each node u in Segment Tree, u has two values: Lu and Ru.
    - If Lu=Ru, u is a leaf node. 
    - If LuRu, u has two children x and y,with Lx=Lu,Rx=Lu+Ru2,Ly=Lu+Ru2+1,Ry=Ru.
    Here is an example of segment tree to do range query of sum.



    Given two integers L and R, Your task is to find the minimum non-negative n satisfy that: A Segment Tree with root node's value Lroot=0 and Rroot=ncontains a node u with Lu=L and Ru=R.
     

    Input
    The input consists of several test cases. 
    Each test case contains two integers L and R, as described above.
    0LR109
    LRL+12015
     

    Output
    For each test, output one line contains one integer. If there is no such n, just output -1.
     

    Sample Input
    6 7 10 13 10 11
     

    Sample Output
    7 -1 12
     

    Source
     

    题意:
    给定区间[l,r]
    用线段树的递归建树方式build(1, n)
    问最小的n是多少,使得build(1,n) 中能直接建出区间[l,r]
    思路:
    注意一下范围,然后推算一下就能发现这个区间距离根节点的距离不超过10
    所以从底向上搜就好了

    代码

  • 相关阅读:
    顶级jQuery树插件
    jQuery 表格
    FlexiGrid使用手册
    gif动图快速制作方法(附工具)(转)
    Maven搭建SpringMVC+Hibernate项目详解(转)
    Gradle cookbook(转)
    Gradle入门系列(转)
    Gradle构建多模块项目(转)
    oracle中imp命令具体解释
    DisplayContent、StackBox、TaskStack笔记
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/7111008.html
Copyright © 2011-2022 走看看