jzoj4208-线段树什么的最讨厌了【dfs】
生活随笔
收集整理的這篇文章主要介紹了
jzoj4208-线段树什么的最讨厌了【dfs】
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
正題
題目大意
一個0~n0\sim n0~n的線段樹包含l~rl\sim rl~r的區(qū)間,求最小的nnn
解題思路
dfsdfsdfs一下,從下面開始往上擴展區(qū)間,知道變成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);} }總結(jié)
以上是生活随笔為你收集整理的jzoj4208-线段树什么的最讨厌了【dfs】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 联想A4如何重装xp系统联想电脑如何重做
- 下一篇: jzoj4209-已经没有什么好害怕的了