zoukankan      html  css  js  c++  java
  • 2015 Multi-University Training Contest 3 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): 1479    Accepted Submission(s): 423


    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=n contains 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
     
    解题:搜索
     
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef long long LL;
     4 const LL INF = 0x3f3f3f3f3f3f3f3f;
     5 LL X,Y,ret;
     6 void dfs(LL L,LL R) {
     7     if(R >= ret || L < 0) return;
     8     if(L == 0) {
     9         ret = min(ret,R);
    10         return;
    11     }
    12     if(R - L + 1 > L) return;
    13     dfs(2*L - R - 2,R);
    14     dfs(2*L - R - 1,R);
    15     dfs(L,2*R - L);
    16     dfs(L,2*R - L + 1);
    17 }
    18 
    19 int main() {
    20     while(~scanf("%I64d%I64d",&X,&Y)) {
    21         ret = INF;
    22         dfs(X,Y);
    23         printf("%I64d
    ",ret == INF?-1:ret);
    24     }
    25     return 0;
    26 }
    View Code
  • 相关阅读:
    Android开发使用的常见第三方框架汇总
    15 个 Android 通用流行框架大全(归类)
    android布局属性大全
    Android 开源项目分类汇总
    有哪些 Android 大牛的 blog 值得推荐?
    Android Activity 知识点全面总结
    android知识点大总结
    自动生成fbi代码网站
    androidstudio 快捷键设置以及导入快捷键模版
    Android Studio调背景颜色
  • 原文地址:https://www.cnblogs.com/crackpotisback/p/4686070.html
Copyright © 2011-2022 走看看