日韩性视频-久久久蜜桃-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的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产情侣在线视频 | 波多野结衣中文字幕在线播放 | 国产日产久久高清欧美一区 | 少妇被又大又粗又爽毛片久久黑人 | 婷婷在线观看视频 | 国产黄站 | 成 人 免费 黄 色 | 一区二区三区在线观 | 免费成人美女在线观看. | 日本黄色一级 | 国产精品九九热 | 精品毛片一区二区三区 | 久久亚洲国产 | 亚洲不卡在线播放 | 丝袜av网站 | 深夜激情网 | 久久免费在线视频 | 在线免费观看a级片 | 美女福利视频在线 | 动漫一区二区 | 国产一区二区三区四区 | 精品成人无码一区二区三区 | 国产每日更新 | www.亚洲一区二区 | 快射视频在线观看 | 午夜在线一区二区 | 日日拍拍 | av中出在线 | 久久高清内射无套 | 日本不卡在线播放 | 特黄级 | 这里只有精品免费视频 | 欧美日韩国产成人在线 | 9999免费视频| 尤物193.com | 日韩视频在线一区二区 | 精品国产久 | 日韩在线免费视频 | a中文字幕 | 国产一区二区三区视频在线观看 | 亚洲喷潮 | 亚洲最新av在线 | 国产一级视频在线 | 人妻无码一区二区三区久久99 | 国产午夜精品无码 | 亚洲 欧美 日韩 国产综合 在线 | av在线色| 亚洲看| 久久精品—区二区三区舞蹈 | 精品国产一区二区三区性色av | 91在线播放视频 | 丰满少妇一级 | 97精品久久久 | 午夜在线网站 | 免费无毒av | 老熟妇仑乱一区二区视频 | 中文字幕人妻色偷偷久久 | 欧美一二三区在线观看 | 中国大陆高清aⅴ毛片 | 国产精品hd | 日韩高清在线一区 | 污网站免费在线观看 | 美攻壮受大胸奶汁(高h) | 精品国产一区二区三区久久久蜜月 | 精品人妻一区二区三区在线视频 | 怡春院欧美 | 91爱爱.com| 日韩中文字幕不卡 | 青青青国内视频在线观看软件 | 国产九色 | 美女诱惑av | 日本大尺度做爰呻吟舌吻 | 日韩av中文 | 国产不卡视频一区二区三区 | 亚洲欧美少妇 | 黑人一区二区三区四区五区 | 日本伦理在线 | 怡红院精品视频 | 人人看av| 在线观看成人网 | 一级少妇女片 | 一级黄色a毛片 | 国产福利免费 | 国产jjizz一区二区三区视频 | 91精品国产乱码 | 精品一区免费 | 色悠悠网址 | 亚洲国产精品久久久久久久 | 色狠狠一区二区三区 | 久久夜色精品 | 亚洲成色网 | 青青草在线观看视频 | 天天色成人 | 日韩精品高清在线 | 久久伊人草 | 蜜色av| 欧美用舌头去添高潮 | 免费成人深夜 | 麻豆精品久久 |