多校 hdu
来源:互联网 发布:淘宝达人范文 编辑:程序博客网 时间:2024/05/17 03:33
Solve this interesting problem
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1571 Accepted Submission(s): 454
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 .
- IfLu=Ru , u is a leaf node.
- IfLu≠Ru , 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 valueLroot=0 and Rroot=n contains a node u with Lu=L and Ru=R .
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:
- If
- If
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
Input
The input consists of several test cases.
Each test case contains two integers L and R, as described above.
0≤L≤R≤109
LR−L+1≤2015
Each test case contains two integers L and R, as described above.
Output
For each test, output one line contains one integer. If there is no such n, just output -1.
Sample Input
6 710 1310 11
Sample Output
7-112
Source
2015 Multi-University Training Contest 3
Recommend
wange2014 | We have carefully selected several similar problems for you: 5326 5325 5324 5322 5321
#include<cstdio>#include<cmath>#include<stdlib.h>#include<map>#include<set>#include<time.h>#include<vector>#include<queue>#include<string>#include<string.h>#include<iostream>#include<algorithm>using namespace std;#define eps 1e-8#define INF 0x3f3f3f3f#define LL long long#define max(a,b) ((a)>(b)?(a):(b))#define min(a,b) ((a)<(b)?(a):(b))LL L, R;LL flag;void dfs(LL l, LL r){ if((flag && r >= flag)) return ; if(l == 0) { flag == 0 ? flag = r : flag = min(flag, r); return ; } long long t = r - l + 1; if(t <= l) { dfs(l - t - 1, r); dfs(l - t, r); dfs(l, r + t - 1); dfs(l, r + t); }}int main(){ while(~scanf("%I64d%I64d", &L, &R)) { flag = 0; if(R == 0) printf("0\n"); else { dfs(L, R); if(flag) printf("%I64d\n", flag); else printf("-1\n"); } } return 0;}
1 0
- hdu 多校
- hdu 多校
- 多校 hdu
- 多校 hdu
- 多校 hdu
- HDU 多校
- 2015 多校(1) HDU 5288 HDU 5289
- hdu 4604 2013多校
- HDU 5319多校 模拟
- 多校 hdu 5325
- 多校 hdu 5305
- 2015多校VI hdu
- hdu 5375 多校
- hdu 5387 Clock 多校
- hdu-5407(多校2015)
- 多校&&HDU 5726 GCD
- 多校&&HDU.5724 Chess
- 多校&&HDU.5733 tetrahedron
- JAVA反射机制之ClassLoader
- 小白学开发(iOS)OC_私有方法(2015-07-28)
- PHP中命名空间的创建-使用namespace
- exfat文件系统(三)
- lamda表达式学习
- 多校 hdu
- redis内存优化
- Ubuntu 彻底删除 Mysql 然后重装 Mysql
- uboot 环境变量设置研究
- 制作一个带SNTP的智能手表
- 淘宝卖家评价体系
- oracle 中如何获取本机ip地址,根据IP地址获取域名?
- html中设置锚点定位的几种常见方法
- 九度oj 1087