jzoj4208-线段树什么的最讨厌了【dfs】
生活随笔
收集整理的这篇文章主要介绍了
jzoj4208-线段树什么的最讨厌了【dfs】
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
正题
题目大意
一个0∼n0\sim n0∼n的线段树包含l∼rl\sim rl∼r的区间,求最小的nnn
解题思路
dfsdfsdfs一下,从下面开始往上扩展区间,知道变成0∼x0\sim x0∼x的格式就就可以去最小值了。
记得剪枝
codecodecode
#include<cstdio> #include<algorithm> #define ll long long using namespace std; ll t,l,r,lim,mins; void dfs(ll l,ll r) {if(l<0||r>lim) return;if(r>mins) return;if(l==0){mins=min(mins,r);return;}int k=r-l+1;dfs(l-k,r);dfs(l-k-1,r);if(l>=k*2)dfs(l,r+k);if(l>=k*2-1)dfs(l,r+k-1); } int main() {scanf("%lld",&t);for(ll i=1;i<=t;i++){mins=1e18;scanf("%lld%lld%lld",&l,&r,&lim);if(l==r||!r){printf("%lld\n",r);continue;}dfs(l,r);if(mins>lim) printf("-1\n");else printf("%lld\n",mins);} }总结
以上是生活随笔为你收集整理的jzoj4208-线段树什么的最讨厌了【dfs】的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 联想A4如何重装xp系统联想电脑如何重做
- 下一篇: jzoj4209-已经没有什么好害怕的了