当前位置: 首页 > news >正文

网站安装代码深圳平湖网站建设公司

网站安装代码,深圳平湖网站建设公司,廊坊网站建设 elu,镇江哪里做网站Ancient Distance 给定一颗根为111有nnn个节点的树#xff0c;每次可以选定树上kkk节点当作特殊节点#xff0c; 定义dis(u)dis(u)dis(u)为#xff0c;从u−1u-1u−1遇上的第一个特殊点的距离#xff0c;如果遇不上特殊点则dis(u)dis(u)dis(u)无穷大。 有nn…Ancient Distance 给定一颗根为111有nnn个节点的树每次可以选定树上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的 由此我们发现整体复杂度是∑i1n⌈ni⌉log⁡nO(nlog⁡nlog⁡n)\sum\limits_{i 1} ^{n} \lceil \frac{n}{i} \rceil \log n O(n \log n \log n)i1∑n​⌈in​⌉lognO(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;vectorint 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;}vectorint 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; }
http://wiki.neutronadmin.com/news/52696/

相关文章:

  • 站长工具搜索计算机软件开发专业
  • 网站建设使用哪种语言好中国核工业第五建设有限公司招聘信息
  • 网页设计与网站建设期末考试题网站营销建设策划案
  • 网络营销专业好不好seo引流什么意思
  • 公司网站开发制作公司网站建设销售是做什么的
  • 项目计划书范文案例优化模型有哪些
  • 网站推广公司兴田德润在哪里中国建筑app下载
  • led行业网站源码所有的购物平台大全
  • 建设大型网站设计公司app开发公司推荐
  • 六盘水南宁网站建设在哪买网站链接
  • 建个什么网站好如何后台修改网站联系人
  • 导购网站怎么做视频教学wordpress 当前文章所属分类
  • 哪个网站可以找设计师做设计师软件工程师证书报考要求
  • 企业网站优化公司哪家好网页设计岗位职责
  • 做暖暖视频免费观看免费网站用QQ群做网站排名
  • 网站搜索引擎友好性分析华文细黑做网站有版权吗
  • 建设部执业注册网站电子邮件无法发送wordpress
  • 深圳做网站 创同盟公司网络规划的重要性
  • 网站里的聊天怎么做汽车美容网站模板
  • oss可以做视频网站吗c 网站开发 书
  • 甘肃永靖建设住建局网站网站建设 采集
  • 网站开发文档是什么概念品牌宣传型网站建设方案
  • 镇江做网站seo做国际贸易用什么网站
  • 免费看电影的网站是什么什么是seo
  • 外贸网站的推广技巧有哪些wordpress分类图标
  • 网站建设工作室发展化妆品网站栏目策划
  • 天津响应式网站建设制作济南手机网站建设专业定制
  • 手机端网站建设方案html网页制作大作业范例
  • 技术支持 东莞网站建设网上注册公司在哪个平台注册
  • 红叶网站建设方案wordpress在线监测