ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

P6020 [Ynoi2010] Exponential tree 解题报告

2022-09-10 11:31:39  阅读:169  来源: 互联网

标签:log Exponential Ynoi2010 P6020 区间 alpha 数据结构 预处理 leqslant


P6020 [Ynoi2010] Exponential tree 解题报告:

更好的阅读体验

感觉还是水平不太行,写的很感性。

题意

给定 \(n,k\),构造矩阵满足:

  1. \(a_{i,i}=a_{i,i+1}=1\);
  2. 对于 \(i>j\),\(a_{i,j}=0\);
  3. 若 \(j>i+1\) 且 \(a_{i,j}=1\),则存在 \(i<t<j\) 满足 \(a_{i,t}=a_{t,j}=1\);
  4. 矩阵 \(A^k\) 需满足对于所有 \(i\leqslant j\),\((i,j)\) 非零。

\(1900\leqslant n\leqslant 2000\),\(2\leqslant k\leqslant 15\),你构造的矩阵 \(1\) 个数 \(m\) 需要服从一系列约束,形如 \(m-(2n-1)\leqslant \lambda n\)。

分析

之前学习过相关知识,结果又不会了,属实是菜。

记 \(F(k,n)\) 为在 \((k,n)\) 约束下我们做到的 \(m\) 大小。

赋予矩阵一个组合意义:我们初始拥有 \(n-1\) 个区间 \([i,i+1]\),需要预处理若干个区间,使得预处理的区间都可以表示成两个更小的预处理区间的无交并,且所有的区间都可以表示成不超过 \(k\) 个预处理的区间的无交并。

\(k=2\) 时是经典的猫树算法,这里不赘述,可以做到 \(F(2,n)=O(n\log n)\),事实上这也是这个子问题的下界

\(k=3\) 时是经典的 sqrt-tree 算法,做法大概是对序列分块,预处理所有块前缀、后缀区间,以及所有整块区间,块内的区间作为子问题递归处理,得到 \(F(3,n)=O(n\log\log n)\)。

\(k>3\) 时,想做到更优,我们需要对整块区间也作为子问题处理。

具体地,我们可以通过 dp 找出最优的分段点:(令 \(a_{1,2,\cdots,p}\) 为每一个块的大小)

\[F(k,n)=\min_{a_{1,2,\cdots p}}(a_1-1)+\sum_{i=2}^{p-1}(2a_i-3)+(a_m-1)\\+F(k-2,p-2)+\sum_{i=1}^p F(k,a_i-[i>1]-[i<p]) \]

直接求复杂度太劣,剪一剪枝大概就能过了。


稍微提一句,当 \(k=O(\alpha(n))\) 时,我们可以做到 \(F(k,n)=O(n\alpha(n))\)(应该是下界?),做法大概是:

建立 \(t\) 层数据结构,其中第 \(i\) 层数据结构块间用第 \(i-1\) 层数据结构维护(我们钦定第 \(0\) 层的数据结构为猫树),块内递归下去。

令 \(T(t,n)\) 为第 \(t\) 层数据结构的深度,我们第 \(i\) 层数据结构按照 \(T(i-1,n)\) 分块,于是 \(T(1,n)=\log^*n\),\(T(2,n)\) 就是 \(n\) 不断取 \(\log^*\) 直到变成 \(O(1)\) 的次数。那么 \(t\) 就是 \(n\) 不断变成 \(T(t-1,n)\) 变成 \(O(1)\) 的次数,此时 \(t=\alpha(n)\),为反阿克曼函数,于是得到 \(F(k,n)=O(n\alpha(n))\)。

代码

标签:log,Exponential,Ynoi2010,P6020,区间,alpha,数据结构,预处理,leqslant
来源: https://www.cnblogs.com/xiaoziyao/p/16676217.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有