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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Ancient Distance(妙啊!!!) [2020牛客暑期多校训练营(第四场)]

發布時間:2023/12/4 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ancient Distance(妙啊!!!) [2020牛客暑期多校训练营(第四场)] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Ancient Distance

給定一顆根為111nnn個節點的樹,每次可以選定樹上kkk節點當作特殊節點,

定義dis(u)dis(u)dis(u)為,從u?>1u->1u?>1遇上的第一個特殊點的距離,如果遇不上特殊點則dis(u)dis(u)dis(u)無窮大。

nnn次詢問,問,每次選k∈{1,2,3,…,n?1,n}k \in \{1, 2, 3, \dots, n - 1, n\}k{1,2,3,,n?1,n}個特殊點時的答案,

有一個性質,最大答案為n?1n - 1n?1,且111號點是一定要選的,接下來考慮其他的點如何選取,

假設我們當前答案為xxx,我們需要選取多少個點,有一個貪心的想法,找到一個節點最深的節點,然后把他的第xxx代祖先設置為特殊點,

這樣我們就保證了這一子樹都滿足答案小于等于xxx,按照這樣依次操作,最后我們的答案都會小于xxx

不難發現對于每個xxx,我們所需執行的操作最多不會超過?nx?\lceil \frac{n}{x} \rceil?xn??,我們可以利用線段樹來查詢每次需要操作的點,這樣保證了一次操作是log?n\log nlogn的,

由此我們發現整體復雜度是∑i=1n?ni?log?n=O(nlog?nlog?n)\sum\limits_{i = 1} ^{n} \lceil \frac{n}{i} \rceil \log n = O(n \log n \log n)i=1n??in??logn=O(nlognlogn)的。

#include <bits/stdc++.h> #define mid (l + r >> 1) #define lson rt << 1, l, mid #define rson rt << 1 | 1, mid + 1, r #define ls rt << 1 #define rs rt << 1 | 1using namespace std;const int N = 2e5 + 10;int maxn[N << 2], id[N << 2], cov[N << 2], ans[N], n;int l[N], r[N], rk[N], fa[N][21], dep[N], tot;vector<int> G[N];void dfs(int rt, int f) {l[rt] = ++tot, rk[tot] = rt, fa[rt][0] = f, dep[rt] = dep[f] + 1;for (int i = 1; i <= 20; i++) {fa[rt][i] = fa[fa[rt][i - 1]][i - 1];}for (int &to : G[rt]) {if (to == f) {continue;}dfs(to, rt);}r[rt] = tot; }int k_fa(int rt, int k) {for (int i = 20; i >= 0; i--) {if (k >> i & 1) {rt = fa[rt][i];}}return rt; }void push_up(int rt) {maxn[rt] = 0;if (!cov[ls] && maxn[ls] > maxn[rt]) {maxn[rt] = maxn[ls];id[rt] = id[ls];}if (!cov[rs] && maxn[rs] > maxn[rt]) {maxn[rt] = maxn[rs];id[rt] = id[rs];} }void build(int rt, int l, int r) {cov[rt] = 0;if (l == r) {maxn[rt] = dep[rk[l]];id[rt] = rk[l];return ;}build(lson);build(rson);push_up(rt); }void update(int rt, int l, int r, int L, int R, int v) {if (l >= L && r <= R) {cov[rt] = v;return ;}if (L <= mid) {update(lson, L, R, v);}if (R > mid) {update(rson, L, R, v);}push_up(rt); }int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);while (scanf("%d", &n) != EOF) {tot = 0;for (int i = 1; i <= n; i++) {G[i].clear();}for (int i = 2, x; i <= n; i++) {scanf("%d", &x);G[x].push_back(i);G[i].push_back(x);}dep[0] = -1;dfs(1, 0);build(1, 1, n);for (int i = 1; i <= n; i++) {ans[i] = n;}vector<int> vt;for (int cur = n - 1; cur >= 0; cur--) {int num = 1;vt.clear();while (true) {if (maxn[1] <= cur) {break;}num++;int u = k_fa(id[1], cur);vt.push_back(u);update(1, 1, n, l[u], r[u], 1);}ans[num] = cur;for (auto rt : vt) {update(1, 1, n, l[rt], r[rt], 0);}}for (int i = 2; i <= n; i++) {ans[i] = min(ans[i], ans[i - 1]);}long long res = 0;for (int i = 1; i <= n; i++) {res += ans[i];}printf("%lld\n", res);}return 0; }

總結

以上是生活随笔為你收集整理的Ancient Distance(妙啊!!!) [2020牛客暑期多校训练营(第四场)]的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲精品h | 日韩欧美国产一区二区 | 青青草免费在线 | 森泽佳奈在线播放 | 国产男人天堂 | 原神女裸体看个够无遮挡 | 午夜不卡av免费 | 超碰免费公开在线 | 黄色91免费观看 | 国产在线视频网 | 久久riav| 亚州色图欧美色图| 成年人网站在线免费观看 | 婷婷午夜激情 | 69xxxx国产| 超碰在线一区 | 成人av网站在线 | 男女福利视频 | 日本精品久久久久中文字幕 | 成人在线视屏 | 欧美成人免费一级 | 三级在线观看网站 | 日本一区二区免费高清视频 | 欧美拍拍视频 | 强行无套内谢大学生初次 | 日韩一道本 | 欧美毛片基地 | 欧美成人精品一区二区男人看 | 国产精品免费91 | 蜜臀av在线观看 | 激情另类视频 | 久久精品国产精品 | 亚洲先锋影音 | 深田咏美中文字幕 | 日韩一区网站 | 成人在线观看你懂的 | 调教在线观看 | 97超视频在线观看 | 韩国伦理片在线播放 | 国产在线精品一区二区 | 久久精品一区二区三区不卡牛牛 | 国产精品一区麻豆 | 最新在线中文字幕 | 91在线视频观看 | 啪啪免费网站 | 西西午夜 | 欧美精品人妻一区二区 | 国产一区视频在线观看免费 | 欧美极品在线视频 | 日韩一区二区在线免费观看 | 麻豆精品一区 | 欧美寡妇性猛交ⅹxxx | 精东影业一区二区三区 | 国产伦精品一区二区三区高清版 | 久久精品无码一区二区三区 | 色婷婷欧美 | 亚洲黄色免费电影 | 灌满闺乖女h高h调教尿h | 超碰在线国产 | 精品成人一区 | 一区二区在线视频免费观看 | 麻豆免费下载 | 亚洲看看| 观看av免费 | 91精品国产91久久久久青草 | 欧美视频在线不卡 | 精品亚洲国产成人av制服丝袜 | 亚洲成人资源 | 亚洲男性天堂 | 国产白丝精品91爽爽久久 | 欧美永久视频 | 精品丰满少妇一区二区三区 | 91亚洲一线产区二线产区 | 久久精品视频8 | 国产成人在线播放 | 精品人妻一区二区三区含羞草 | 美女国产免费 | 97人人澡 | 日韩无砖| 欧美不卡在线视频 | 国产精品久久影视 | 久久国产网站 | 中文字幕av片 | 色在线免费观看 | 日本不卡一区在线 | 福利视频在线看 | 亚洲天堂自拍偷拍 | 中国女人毛片 | 粗大的内捧猛烈进出视频 | 一区二区三区视频在线 | 日本少妇激情视频 | 午夜美女福利 | 国产精品久久久久久久久晋中 | 欧美成人一区二免费视频软件 | 亚洲狠狠婷婷综合久久久久图片 | 亚洲高清视频在线观看 | 不用播放器av | 奇米网7777 | 波多野结衣视频一区二区 |