HDU 5323(2015多校3)-Solve this interesting problem(dfs+剪枝)
来源:互联网 发布:冒险岛自由市场数据库 编辑:程序博客网 时间:2024/04/29 15:25
题目地址:HDU 5323
题意:给一个l,r,表示区间[l,r],问是否存在区间为[0,n]的线段树的节点区间为[l,r],如果有求最小的n,如果没有输出-1。
思路:因为L/(R-L+1)<=2015,按照线段树的性质每次分区间序号扩大两倍,所以可以得出差不多有22层,所以用爆搜就可以,由上把[l,r]区间不断扩张,直到满足l==0为止。顺便剪剪枝。
#include <stdio.h>#include <math.h>#include <string.h>#include <stdlib.h>#include <iostream>#include <sstream>#include <algorithm>#include <set>#include <queue>#include <stack>#include <map>#pragma comment(linker, "/STACK:102400000,102400000")using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const double pi= acos(-1.0);const double esp=1e-8;int ans;int dfs(int l,int r){ if(l<0) return ans;//控制左边界 if(!l){//保存当前最小的右边界 ans=min(ans,r); return ans; } if(2*l<r+1) return ans;//剪枝。相当于控制右边界 if(l==r) {//左边界等于右边界的时候不用处理,直接输出、 return r; } //下面是四种情况。 dfs(l,2*r-l+1); dfs(l,2*r-l); dfs(2*l-r-1,r); dfs(2*l-r-2,r);}int main(){ int l,r; while(~scanf("%d %d",&l,&r)){ ans=inf; ans=dfs(l,r); if(ans==inf) puts("-1"); else printf("%d\n",ans); } return 0;}
1 0
- HDU 5323(2015多校3)-Solve this interesting problem(dfs+剪枝)
- hdu 5323 Solve this interesting problem 【DFS】
- HDU 5323 Solve this interesting problem(DFS)
- HDU 5323Solve this interesting problem(DFS)
- Hdu 5323 Solve this interesting problem【Dfs】
- HDU 5323 Solve this interesting problem(dfs结合线段树特点剪枝)
- hdu 5323 Solve this interesting problem(dfs)
- hdu 5323 Solve this interesting problem dfs搜索
- hdu 5323 Solve this interesting problem dfs 搜索
- HDU 5323 Solve this interesting problem(DFS)
- HUD 5323 Solve this interesting problem dfs剪枝搜索,重构线段树
- HDU 5323 Solve this interesting problem
- HDU 5323 SOLVE THIS INTERESTING PROBLEM 爆搜
- 【搜索】 HDU 5323 Solve this interesting problem
- HDU 5323 Solve this interesting problem(暴搜)
- hdu 5323 Solve this interesting problem
- 2015多校Solve this interesting problem
- 多校第三场 1006 hdu 5323 Solve this interesting problem(dfs)
- 基于CLM(Constrained local model)人脸点检测算法
- 数据结构——树的简单操作集合
- 使用button标签让文字垂直水平居中
- [LeetCode] 038. Count and Say (Easy) (C++/Python)
- STM32 TFT学习笔记——刷图
- HDU 5323(2015多校3)-Solve this interesting problem(dfs+剪枝)
- RT5350 安装 读卡器驱动
- Java核心总结-----00篇
- RHEL十六(使用VIM编辑器)
- 【LintCode】 Best Time to Buy and Sell Stock III 买卖股票的最佳时机 III
- 关于导航栏的六个小技巧
- 深度学习&&机器学习&&模式识别
- 在线CRC32网站
- HDOJ-1213 How Many Tables(包含题意)