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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[codevs 1343] 蚱蜢(省队选拔赛湖南)

發(fā)布時間:2025/3/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [codevs 1343] 蚱蜢(省队选拔赛湖南) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

http://codevs.cn/problem/1343/

題解:

本題splay基本操作:

1.如果是左跳,比如從 x 左跳到 y,就相當于查詢 [ y, x ) 區(qū)間的最大值,那么就把 y-1 伸展到根,把 x 伸展到根的右節(jié)點,那么根的右節(jié)點的左節(jié)點對應的就是這段區(qū)間。

1.如果是右跳,比如從 x 右跳到 y,就相當于查詢 ( x, y ] 區(qū)間的最大值,那么就把 x 伸展到根,把 y+1 伸展到根的右節(jié)點,那么根的右節(jié)點的左節(jié)點對應的就是這段區(qū)間。

3.這里 splay 是要將某個位置的節(jié)點伸展到給定位置,所以采用從頂向下查詢第 rank 個的方式伸展,見代碼。

4.remove操作:刪除第 k 個,就把第 k-1 個伸展到根,把第 k+1 個伸展到根的右節(jié)點,刪除它的左節(jié)點即可。別忘記 update 操作。

5.insert操作:如果要插到第 k 處,就把第 k-1 個節(jié)點旋轉到根,把第 k 個節(jié)點旋轉到根的右節(jié)點,那么插入到根的右節(jié)點的左節(jié)點就可以代替原來的第 k 個。好像沒必要像我分兩種情況。最后別忘 update,先子節(jié)點再根節(jié)點。

6.move操作:就是先 remove 再 insert。

7.宏定義:因為用到大量的根節(jié)點的左右節(jié)點的調用,而這里還不適合用引用,所以干脆定義了宏,簡單清楚,編程效果好了很多。

8.邊界防溢出:因為1、2中的將 y-1、y+1 伸展到根都是危險操作,因為 y 有可能等于 1 或 n,而 0 節(jié)點不能成為根節(jié)點,因為0節(jié)點默認為空;n+1 節(jié)點直接溢出,所以建立兩個虛擬節(jié)點,一個為1,一個為 n+1,分別放在開頭和末尾,對編程本身沒影響,但不用擔心溢出了,不過各個節(jié)點相應的位置就變了,讀入位置 x 后 x++ 就行了。


代碼:

總時間耗費: 6439ms?
總內存耗費: 3 kB

有些慢,但內存耗的很少。

#include<cstdio> #include<algorithm> using namespace std;const int INF = 1e9 + 7; const int maxn = 100000 + 10;int root, ch[maxn][2], v[maxn], s[maxn], maxv[maxn];void update(int o) {maxv[o] = max(v[o], maxv[ch[o][0]]);maxv[o] = max(maxv[o], maxv[ch[o][1]]);s[o] = s[ch[o][0]] + s[ch[o][1]] + 1; }int cmp(int o, int k) {int sum = s[ch[o][0]] + 1;if(sum == k) return -1;return k < sum ? 0 : 1; }void rotate(int& o, int d) {int k = ch[o][d^1]; ch[o][d^1] = ch[k][d]; ch[k][d] = o;update(o); update(k); o = k; }void splay(int& o, int k) {int d = cmp(o, k);if(d == -1) return;if(d == 1) k -= s[ch[o][0]] + 1;int p = ch[o][d];int d2 = cmp(p, k);int k2 = (d2 == 0) ? k : k - s[ch[p][0]] - 1;if(d2 != -1) {splay(ch[p][d2], k2);if(d2 == d) rotate(o, d^1); else rotate(ch[o][d], d);}rotate(o, d^1); }void build(int l, int r, int pa) {if(l > r) return;if(l == r) { maxv[l] = v[l]; s[l] = 1; if(l < pa) ch[pa][0] = l; else ch[pa][1] = l;return;} int m = (l+r) >> 1; maxv[m] = v[m];build(l, m-1, m); build(m+1, r, m); update(m);if(m < pa) ch[pa][0] = m; else ch[pa][1] = m; }#define lc ch[root][0] #define rc ch[root][1]void move(int x, int y) {splay(root, x-1); splay(rc, x-s[lc]); //x+1 - (s[lc]+1)int o = ch[rc][0];ch[rc][0] = 0; //removeupdate(rc);if(x < y) {splay(root, y-1); splay(rc, y-s[lc]-1); //y - (s[lc]+1)ch[rc][0] = o; update(rc); update(root); //notice} else {splay(root, y); splay(lc, y-1); //ch[lc][1] = o; update(lc); update(root);} }int main() {int n, m; scanf("%d%d", &n, &m); for(int i = 2; i <= n+1; i++) scanf("%d", &v[i]); build(1, n+2, 0); root = (n+3) >> 1;for(int i = 1; i <= m; i++) {int x, k; char cmd[1]; scanf("%d%s%d", &x, &cmd, &k); x++;switch(cmd[0]) {case 'L': {splay(root, x-k-1); splay(rc, x-s[lc]-1); //x - (s[lc]+1)printf("%d\n", maxv[ch[rc][0]]); move(x, x-k);break; }case 'D': {splay(root, x); splay(rc, x+k-s[lc]); //x+k+1 - (s[lc]+1)printf("%d\n", maxv[ch[rc][0]]); move(x, x+k);break;}}}return 0; }

總結

以上是生活随笔為你收集整理的[codevs 1343] 蚱蜢(省队选拔赛湖南)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日本亚洲一区二区 | 黄色成人av在线 | 亚洲毛片在线播放 | 伊人影院在线播放 | 一级做a爰片久久毛片潮喷 天天透天天干 | av电影在线观看 | 日韩人妻精品一区二区三区 | 日本特黄| av在线网页 | 亚洲一区在线视频 | 人体内射精一区二区三区 | 亚洲精品国产精品国自产观看浪潮 | av美女网站| 西西人体做爰大胆gogo直播 | 中文字幕日韩久久 | 成人伊人 | 枫可怜av | 男人舔女人下部高潮全视频 | 杨幂毛片| 91视频免费在观看 | 国产裸体永久免费视频网站 | 午夜影院在线观看18 | 欧美日韩亚洲国产精品 | 精品自拍视频在线观看 | 69视频在线 | 午夜国产在线 | 欧美黄色一级生活片 | 北京少妇xxxx做受 | 8x8x永久免费视频 | 久久久久无码精品国产 | 日韩一区二区在线观看视频 | 中文字幕第一页在线 | 免费黄色av | 精品国产18久久久久久二百 | aise爱色av | 色版视频| 中文字幕亚洲乱码 | 国产美女主播在线观看 | 日本专区在线 | 日韩不卡免费视频 | 无码少妇一区二区三区芒果 | 亚洲精品视频免费在线观看 | 夜夜爽爽 | 波多野结衣在线播放 | 波多野结衣乳巨码无在线 | 亚洲30p| 插吧插吧网 | 极品白嫩的小少妇 | 91美女免费看 | 97一区二区三区 | 亚洲国产日韩一区二区 | 中文字幕av在线免费观看 | 三级a做爰全过程 | ,亚洲人成毛片在线播放 | 天天艹天天爽 | 色老头综合 | 黄色免费视屏 | 欧美乱视频 | 国产成人在线免费 | wwwxxxx欧美| 三级黄色免费片 | 欧美中文字幕视频 | 在线综合色 | 激情小说欧美色图 | 最新av中文字幕 | 毛片基地免费 | 超薄肉色丝袜一区二区 | 91天堂在线观看 | 一级空姐毛片 | 丁香婷婷久久 | 色综合成人 | 日韩啊啊啊 | 黑人极品videos精品欧美裸 | 爱久久视频 | 黑人一级黄色片 | 天堂中文字幕在线 | 欧美视频免费看欧美视频 | 精品久久影视 | 奇米一区二区 | 中国av在线 | 一本久久精品一区二区 | 男人av资源 | 久久亚洲综合国产精品99麻豆精品福利 | 蜜桃精品视频在线 | 国产精品久久久久久无人区 | 爱情岛论坛自拍亚洲品质极速最新章 | 中文字幕1| 国产精品亚洲一区 | 五月婷婷欧美 | 人人插人人看 | 国产精品一级二级 | 中文字幕欲求不满 | 日日夜夜一区二区 | 自拍偷拍激情小说 | 在线观看欧美一区二区 | 秋霞在线视频观看 | 国产国语性生话播放 | 一本一道久久综合 | 亚洲av成人无码一区二区三区在线观看 |