日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【线段树】Segment Tree

發布時間:2025/3/8 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【线段树】Segment Tree 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Segment Tree

時間限制:?1 Sec??內存限制:?512 MB
提交:?107??解決:?23
[提交] [狀態] [命題人:admin]

題目描述

Mcginn opens the code which he wrote 25 years ago.

Clever Mcginn wants to know how many positive interger n satis?ed that the maximum c can reach whencall function build(1 , 1 , n) in the main function is m.
There are T test cases. Each case contains one integer m.

?

輸入

Input is given from Standard Input in the following format:
T
m1
m2
.
.
.
mT
Constraints
1 ≤ T ≤ 100
1 ≤ m ≤ 1018

?

輸出

For each m print one line denotes the answer.

?

樣例輸入

復制樣例數據

3 3 4 5

樣例輸出

1
0
1
?

題目大意:

先輸入一個整數t,其下t行每行輸入一個整數m,代表的是線段樹的最后一個節點的數值,問有多少范圍滿足這種線段樹。

解題思路:

首先我們可以知道,對于節點x,在線段樹中其左節點為x*2,右節點為x*2+1,并且左子數包含的點等于右子樹包含的點數或者等于右子樹包含的點數加一,所以對于每一個節點,用l代表此節點包含的最小能包含幾個數,r代表此節點包含的最多能包含幾個數,c代表當前節點的層數。

?以57為例:

代碼:

#include <cstdio> #include <iostream> #include <algorithm> #include <cmath> #include <cstdlib> #include <cstring> #include <map> #include <stack> #include <queue> #include <vector> #include <bitset> #include <set> #include <utility> #include <sstream> #include <iomanip> using namespace std; typedef long long ll; typedef unsigned long long ull; #define inf 0x3f3f3f3f #define rep(i,l,r) for(int i=l;i<=r;i++) #define lep(i,l,r) for(int i=l;i>=r;i--) #define ms(arr) memset(arr,0,sizeof(arr)) //priority_queue<int,vector<int> ,greater<int> >q; const int maxn = (int)1e5 + 5; const ll mod = 1e9+7; int main() {#ifndef ONLINE_JUDGEfreopen("in.txt", "r", stdin);#endif//freopen("out.txt", "w", stdout);ios::sync_with_stdio(0),cin.tie(0);int t;cin>>t;while(t--) {ll m;cin>>m;if(m%2==0) cout<<0<<endl;else {bool ju=false;ll l,r,x,c;l=1LL;r=1LL;x=m;c=0;while(x>1) {ll l1,l2,r1,r2;/*cout<<l<<" "<<r<<" "<<x<<" "<<c<<endl;*/if(x&1) {l2=l;r2=r;if(c==0) {l1=1;r1=1;}else {l1=l;r1=min(r2+1,1LL<<c);if(r1<l1) {ju=true;break;}}l=l1+l2;r=r1+r2;if(r<l) {ju=true;break;}x=(x-1)>>1;c++;}else {l1=l;r1=r;if(c==0) {l2=0;r2=0;}else {if(l==1) l2=1;else l2=l-1;r2=min(r1,1LL<<(c-1));if(r2<l2) {ju=true;break;}}l=l1+l2;r=r1+r2;if(r<l) {ju=true;break;}x=x>>1; c++;}}if(ju) cout<<0<<endl;else cout<<r-l+1<<endl;}}return 0; }

?

總結

以上是生活随笔為你收集整理的【线段树】Segment Tree的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩黄色片 | 久久久久xxxx | 天天插天天 | 国产不卡一 | 成人精品黄段子 | 他趴在我两腿中间添得好爽在线看 | 香蕉国产在线 | 成人观看网站 | 国产精品视频久久久久久 | 国产乱国产乱300精品 | 女儿的朋友5中汉字晋通话 欧美成人免费高清视频 | av无码av天天av天天爽 | 欧美黑人粗大 | 欧美射射射 | 亚洲国产一区二区三区 | 色老头在线视频 | 蜜桃久久久aaaa成人网一区 | 两性av | 久久艹av| 加勒比在线免费视频 | 日韩av伦理 | 黄色av免费在线 | 国产无码精品在线播放 | 国产精品一区在线播放 | 男女激情大尺度做爰视频 | 理论片大全免费理伦片 | 亚洲天堂一区在线观看 | 密桃成熟时在线观看 | 成人羞羞国产免费游戏 | 无套爆插 | 一区在线播放 | 激情综合文学 | 在线看国产精品 | 夜色视频网| 91av中文字幕 | 国内久久久 | 91麻豆产精品久久久久久 | 久久久免费网站 | 三级做爰在线观看视频 | 中文字幕乱码一区二区三区 | 特黄一区二区三区 | 三级黄色网 | 国产婷婷综合 | 国产毛片a | 北条麻妃青青久久 | 欧美成人高潮一二区在线看 | 亚洲蜜桃精久久久久久久久久久久 | 免费看日韩| 久久综合久久久久 | 一级黄色性视频 | 久久久精品影视 | 天天色天天爱 | 亚洲欧美在线不卡 | 欧美在线视频播放 | 狠狠干很很操 | 免费av一级片 | 亚洲国产精品久久 | 男女性高潮免费网站 | 色综合五月婷婷 | 亚洲色图2| a视频在线看 | 一区国产在线 | 伊人久久大香线蕉综合网站 | 污污视频网站 | 黄色资源在线 | 金8天国av | 久久久www成人免费精品 | 一二区在线视频 | 午夜爽爽影院 | 成人做爰视频www网站小优视频 | 国产精品麻豆一区二区三区 | 亚洲h视频在线观看 | 超碰按摩| 亚洲图片88 | 天天天天天干 | 久久亚洲网站 | 鲁一鲁在线视频 | 韩国女同性做爰三级 | 欧美一区免费 | 色就是色av | 四虎影视免费在线观看 | 韩国三级在线看 | 日韩中文字幕在线观看视频 | 国产精品美女高潮无套 | 中文字幕永久 | 女人舌吻男人茎视频 | 黄色在线观看国产 | 超碰在线观看免费版 | 国产原创精品 | 日本一区二区三区视频免费看 | 91久久精品美女高潮 | 天天干天天干 | 小婕子伦流澡到高潮h | 国产视频97 | 亚洲久久久久 | 久久激情五月 | 播放黄色一级片 | 毛片9| 中文字幕精品久久久久人妻红杏1 |