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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[HDOJ3308]LCIS(线段树,区间合并)

發布時間:2025/3/20 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [HDOJ3308]LCIS(线段树,区间合并) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=3308

題意:給定n個數,兩個操作:

U A B:將位置A的數值改成B

Q A B:查詢[A,B]內最長連續上升子序列的長度。

注意到‘連續’一詞,可以用線段樹維護[L,R]區間內的LICS。

定義結構Node,內部l,r為左右兒子的下標。ls,rs記錄當前區間分別從左起和右起的LICS長度,s記錄整個區間內的LICS長度。

pushup:和一般的區間合并操作一樣,但是要注意假如合并的左右子樹中間有可能成為LICS的時候,要判斷是否符合條件,即左起右邊界和右起左邊界是否滿足嚴格的關系。

update:更新節點的時候直接賦值,再更新到線段樹上的操作也是很常規的。

query:比較奇特,因為有左起右邊界和右起左邊界連接起來的情況,所以查詢的時候不是縮小線段樹規模,而是縮小查詢規模來獲得解。而且要注意[L,R]的邊界問題。子樹的范圍未必恰好滿足,可能會更長。

1 #include <bits/stdc++.h> 2 using namespace std; 3 4 #define lrt rt << 1 5 #define rrt rt << 1 | 1 6 typedef struct Node { 7 int l, r; 8 int ls, s, rs; 9 }Node; 10 const int maxn = 100100; 11 char cmd[5]; 12 int n, q; 13 int x[maxn]; 14 Node seg[maxn<<4]; 15 16 void pushUP(int rt, int len) { 17 seg[rt].ls = seg[lrt].ls; seg[rt].rs = seg[rrt].rs; 18 if(seg[rt].ls == len-len/2) { 19 if(x[seg[lrt].r] < x[seg[rrt].l]) { 20 seg[rt].ls += seg[rrt].ls; 21 } 22 } 23 if(seg[rt].rs == len/2) { 24 if(x[seg[lrt].r] < x[seg[rrt].l]) { 25 seg[rt].rs += seg[lrt].rs; 26 } 27 } 28 seg[rt].s = max(seg[lrt].s, seg[rrt].s); 29 if(x[seg[lrt].r] < x[seg[rrt].l]) { 30 seg[rt].s = max(seg[rt].s, seg[lrt].rs+seg[rrt].ls); 31 } 32 } 33 34 void build(int l, int r, int rt) { 35 seg[rt].l = l; seg[rt].r = r; 36 if(l == r) { 37 seg[rt].ls = seg[rt].rs = seg[rt].s = 1; 38 return; 39 } 40 int mid = (l + r) >> 1; 41 build(l, mid, lrt); 42 build(mid+1, r, rrt); 43 pushUP(rt, r-l+1); 44 } 45 46 void update(int L, int R, int rt) { 47 if(L <= seg[rt].l && seg[rt].r <= R) { 48 seg[rt].ls = seg[rt].rs = seg[rt].s = 1; 49 return; 50 } 51 int mid = (seg[rt].l + seg[rt].r) >> 1; 52 if(L <= mid) update(L, R, lrt); 53 if(mid < R) update(L, R, rrt); 54 pushUP(rt, seg[rt].r-seg[rt].l+1); 55 } 56 57 int query(int L, int R, int rt) { 58 if(L == seg[rt].l && R == seg[rt].r) return seg[rt].s; 59 int mid = (seg[rt].l + seg[rt].r) >> 1; 60 if(mid >= R) return query(L, R, lrt); 61 else if(mid + 1 <= L) return query(L, R, rrt); 62 else { 63 int tmp = max(query(L, mid, lrt), query(mid+1, R, rrt)); 64 if(x[seg[lrt].r] < x[seg[rrt].l]) { 65 tmp = max(tmp, min(seg[lrt].rs, mid-L+1)+min(seg[rrt].ls, R-mid)); 66 } 67 return tmp; 68 } 69 } 70 71 int main() { 72 // freopen("in", "r", stdin); 73 int T, a, b; 74 scanf("%d", &T); 75 while(T--) { 76 scanf("%d %d", &n, &q); 77 for(int i = 1; i <= n; i++) { 78 scanf("%d", &x[i]); 79 } 80 build(1, n, 1); 81 while(q--) { 82 scanf("%s %d %d", cmd, &a, &b); 83 a++; 84 if(cmd[0] == 'U') { 85 x[a] = b; 86 update(a, a, 1); 87 } 88 else { 89 b++; 90 printf("%d\n", query(a, b, 1)); 91 } 92 } 93 } 94 return 0; 95 }

?

轉載于:https://www.cnblogs.com/kirai/p/5951773.html

總結

以上是生活随笔為你收集整理的[HDOJ3308]LCIS(线段树,区间合并)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 色婷亚洲 | 亚洲无码久久久久 | 男生看的污网站 | 中文字幕人妻熟女在线 | 亚洲国产精品成人 | 新av在线| 999国产 | 久久久久亚洲av无码a片 | 国产专区一区二区 | 欧美三级在线视频 | a网址| 国产1区2区在线观看 | 五月婷婷色| 国产黄色录像 | 一区二区三区影院 | aa片在线观看视频在线播放 | 日韩精品第一页 | 中文字幕日韩一级 | 色图色小说 | 亚洲资源av | 最新视频–x99av | 久久传媒 | 揄拍成人国产精品视频 | 天天5g天天爽免费观看 | 国产精品久久久久久久av福利 | 波多野结衣网址 | 香蕉久久a毛片 | 亚色图 | 成年视频在线 | 久久影片 | 欧美成人精品欧美一级私黄 | 欧美黄色性 | 极品丰满少妇 | 999精品在线 | 特级西西444www大精品视频免费看 | 婷婷射丁香| 国产69页 | 久久人人视频 | www.青青草.com| 免费在线播放视频 | 国产综合婷婷 | 一区二区在线免费看 | 亚洲天堂av一区 | 女儿的朋友5中汉字晋通话 欧美成人免费高清视频 | 翔田千里在线播放 | av这里只有精品 | 国产成年无码久久久久毛片 | 一级日韩一级欧美 | 一区免费 | 亚洲国产精品无码久久 | 影音先锋蜜桃 | 波多野结衣成人在线 | 成人黄色一级视频 | 日韩在线观看不卡 | 中国大陆高清aⅴ毛片 | 欧美综合亚洲图片综合区 | 日本久久久久久久久久 | 日本黄色高清 | 色午夜婷婷 | 香蕉网站在线观看 | 日韩资源站| 成人av免费观看 | 欧美视频1区 | 午夜黄色影院 | 一区视频 | 在线观看99 | 在线免费观看视频 | 国产精品色婷婷99久久精品 | 亚洲av成人精品日韩在线播放 | 天干夜夜爽爽日日日日 | 日韩亚洲精品视频 | 四虎色播 | 日韩视频在线观看一区二区 | 爆乳熟妇一区二区三区 | 亚洲最新偷拍 | 欧美男优| 国产刺激对白 | 五月婷婷爱 | 欧美色88 | 成年网站在线观看 | 亚洲av永久无码精品一区二区国产 | 毛片无遮挡高清免费观看 | 欧美日韩精品久久久 | xxxx视频在线观看 | 肉丝美脚视频一区二区 | 成人精品一区二区三区中文字幕 | www.男人天堂.com | 亚洲一区二区三区人妻 | 天天射天天搞 | 亚洲天堂日韩在线 | 国产99热| 国产污视频在线观看 | 99久久精品久久久久久清纯 | 青娱乐97 | 欧美熟妇交换久久久久久分类 | 国产无套视频 | 国产xxxx性hd极品 | 粉嫩小箩莉奶水四溅在线观看 | 国产这里有精品 |