欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

jzoj4208-线段树什么的最讨厌了【dfs】

发布时间:2023/12/3 编程问答 53 豆豆
生活随笔 收集整理的这篇文章主要介绍了 jzoj4208-线段树什么的最讨厌了【dfs】 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

正题


题目大意

一个0∼n0\sim n0n的线段树包含l∼rl\sim rlr的区间,求最小的nnn


解题思路

dfsdfsdfs一下,从下面开始往上扩展区间,知道变成0∼x0\sim x0x的格式就就可以去最小值了。

记得剪枝


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】的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。