[二〇二一八月 · 洛谷月赛 · PMOI-4]题解汇总(口胡)
Posted Arextre
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[二〇二一八月 · 洛谷月赛 · PMOI-4]题解汇总(口胡)相关的知识,希望对你有一定的参考价值。
前言 ¶
难道 \\(\\rm Luogu\\) 月赛也要变成 \\(\\text{Construction Force}\\) 了吗?对我这种杂碎来说真的很不友好诶= =.
接下来的题解全是口胡,没有代码验证,如果思路有 \\(\\rm BUG\\) 请务必联系我,阿里嘎多!
T1「PMOI-4」人赢 ¶
最多只会有 \\(81\\) 种情况(因为出现 \\(0\\) 就真的是 \\(0\\) 了),找循环节就行了。
其实矩阵加速加扩展欧拉定理维护最终得到的数的 \\(n,m\\) 的指数也可以。并且这种方法较为通用.....
T2「PMOI-4」生成树 ¶
对 \\(w_i\\) 奇偶分类,某一边如果不能恰好分完,就把小的分到另外一边去,说实话可能这道题比 \\(\\rm T1\\) 还水......
T3「PMOI-4」可怜的团主 ¶
找出原树的 \\(\\rm dfs\\) 树,显然叶子之间不存在横叉变,那么叶子构成独立集,判断该独立集大小是否大于等于 \\(\\udiv{n}{3}\\),如果是,那么显然找到答案了,如果否,将叶子按照 \\(\\rm dfs\\) 序排序,并在最后放入一个根,假设叶子有 \\(m\\) 个,那么现在我们得到一个大小 \\(m+1\\) 的集合,如果 \\(2\\nmid (m+1)\\) 不能整除,则再放入一个根;
设我们最终得到集合大小为 \\(M(2\\mid M)\\),对于这个集合,将第 \\(i\\) 个元素与 \\(i+\\frac{M}{2}\\) 个元素匹配构成一条树上路径,这样显然可以将所有节点覆盖到,证明如下:
对于叶子在每个点的分布情况进行讨论:
- 当叶子全部分布在这个点的某个叶子的时候,这个点势必会被某个叶子与根的路径覆盖,所以该方案,无论根是不是叶子,加入一个根节点是必要的;
- 当叶子分布在至少两个儿子中时,由于是 \\(i\\) 与 \\(i+mid\\) 匹配,那么不论叶子是如何分布,这种匹配方式一定会存在某它子树中的个叶子和它的匹配节点连成的路径跨出该叶子所在子树,这时该节点亦被覆盖;
类似地,可以用这种方法说明除此构造方案以外,其他的方案都有反例(在某些情况下一些错误的构造方案或许可以使用 \\(\\tt random\\_shuffle()\\) 卡过去?)
由于构造输出是 \\(\\mathcal O(n^2)\\) 的,故复杂度就是 \\(\\mathcal O(n^2)\\) 的咯......
T4「PMOI-4」猜排列 ¶
数据范围给予我们十分重要的提示,先看第一组数据:
保证 \\(n=4,m_1=4,m_2=1,m_3=4\\).
先考虑如何解决该部分:
使用一次 \\(2\\) 询问,得到 \\(\\ge 3\\) 的数的下标,再使用至多两次 \\(1\\) 询问(每次询问)即可判断每个数的具体位置。
这应该是这档部分分的唯一解法,并且这唯一解法就是正解来源(这部分分真的良心),我们不难发现,如果我们要确定 \\([1,n]\\) 的数,我们可以通过先确定 \\([1,\\frac{n}{2}]\\) 的数,进而确定 \\((\\frac{n}{2},n]\\) 的数,这启示我们使用倍增,具体地:
- 先使用部分分一的做法确定 \\([1,4]\\);
- 确定 \\((\\frac{n}{2},n]\\) 时,先使用一次 \\(2\\) 询问,确定 \\((\\frac{n}{2},n]\\) 的下标集合。
- 使用 \\(\\frac{n}{2}\\) 将下标集合所有元素用 \\(1\\) 询问做一次,确定 \\(n\\) 的位置;
- 使用 \\(n\\) 可以确定其他所有 \\((\\frac{n}{2},n)\\) 的数的位置;
倍增,使用 \\(\\log_2n\\) 次 \\(2\\) 询问即可解决所有点。并且数据刚好,因为 \\(\\log_250000\\approx 15.60964\\),这真的是刚刚好啊= =.
T5「PMOI-4」排列变换 ¶
答案显然为:
推导过程先留个 \\(\\rm issue\\).
以上是关于[二〇二一八月 · 洛谷月赛 · PMOI-4]题解汇总(口胡)的主要内容,如果未能解决你的问题,请参考以下文章