多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > UVA11525 - Permutation(線段樹)

UVA11525 - Permutation(線段樹)

來源:程序員人生   發布時間:2014-10-04 08:00:01 閱讀次數:3443次

UVA11525 - Permutation(線段樹)

題目鏈接

題目大意:給定一個K,將數字1-K這個序列全排列(K!種),然后給你一個公式讓你求的N,問第N小的數字排列。

解題思路:因為這個求N的公式很特別,Si(K - i)!這個其實就是確定了第i個數是第(Si + 1)大的數字。例如K = 3, S序列 3 2 1,那么3 (3 - 1)!就說明第一個數是3。接著2 (2 - 1)!說明第二個數是2(因為3已經用了)。所以這題是要查詢第(si + 1)大的數,并且需要將用過的數更新。

代碼:

#include <cstdio> #include <cstring> const int N = 5e4 + 5; #define lson(x) (2*(x)) #define rson(x) (2*(x) + 1) struct Node { int l, r, v; void set(int l, int r, int v) { this->l = l; this->r = r; this->v = v; } }node[4 * N]; void build (int u, int l, int r) { if (l == r) node[u].set(l, r, 1); else { int m = l + (r - l) / 2; build(lson(u), l, m); build(rson(u), m + 1, r); node[u].set(l, r, node[lson(u)].v + node[rson(u)].v); } } int Query (int u, int k) { if (node[u].l == node[u].r) return node[u].l; if (k > node[lson(u)].v) return Query(rson(u), k - node[lson(u)].v); else return Query(lson(u), k); } void Update (int u, int p, int v) { if (node[u].l == node[u].r) node[u].v = v; else { int m = node[u].l + (node[u].r - node[u].l) / 2; if (p <= m) Update (lson(u), p, v); else Update (rson(u), p, v); node[u].v = node[lson(u)].v + node[rson(u)].v; } } int main () { int T, K, num, p; scanf ("%d", &T); while (T--) { scanf ("%d", &K); build(1, 1, K); for (int i = 0; i < K; i++) { scanf ("%d", &num); p = Query (1, num + 1); if (i != K - 1) printf ("%d ", p); else printf ("%d ", p); Update(1, p, 0); } } return 0; }

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 伊人久久大香现线蕉 | 久草在线观看福利视频 | 国产精品二区页在线播放 | 最新中文字幕一区二区乱码 | 亚洲视频免费播放 | 欧美乱爱| 国产v精品成人免费视频71sao | 亚洲产国偷v产偷v自拍色戒 | 手机看福利 | 久久国产视频在线观看 | 久久欧美久久欧美精品 | 亚洲产在线精品第一站不卡 | 亚洲国产片高清在线观看 | 欧美伊人久久大香线蕉在观 | 伊人免费在线观看 | 国产91精品高清一区二区三区 | 在线a视频网站 | 男女男精品视频在线观看 | 精品国产一区二区三区在线 | 国产美女久久久亚洲 | 日本不卡在线观看免费v | 国产高清一区二区三区 | 日韩理伦片秋霞理伦 | 欧美日本一二三区 | 欧美成a人片在线观看 | 亚洲 欧美 中文 日韩欧美 | 国产日韩欧美久久久 | 就去干成人 | 在线视频h | 美女啊啊啊| 99爱精品 | 免费精品国产 | linode日本iphone强汉| 午夜视频在线观看www中文 | 最新国产网站 | 欧美精品免费一区欧美久久优播 | 亚洲免费高清 | 国产精品国产三级国产爱网 | 欧美在线性 | 男人边吃奶边做好爽的视频 | 一级做a级爰片性色毛片视频 |