P5246 题解

前言

题目传送门!

更好的阅读体验?

耗时一个晚上,没看题解把消失的源代码切了,很高兴,来写篇题解!

点击 \(\color{red}\textbf{每个子任务的标题}\) 可以查看代码。

如果不想看心路历程,请 \(\color{red}\textbf{划到最底下}\) 看一行流题解。

Task 1

是一堆小写字母,往 exe 里挨个输入 \(\texttt{a}\sim\texttt{z}\) 就能发现这是一个映射。直接做即可。

Task 2

input2.txt 看起来非常简单,但是输进去 \(\text{exe}\) 我就破防了:这是啥啊?????

输入 \(0\sim10\),答案 \(a_i\)\(10, 2030, 8082, 18166, 32282, 50430, 72610, 98822, 129066, 163342, 201650\)

稍微思考一下就不难了。注意到 \(8082\approx 2030\times 2^2\)\(18166 \approx2030\times 3^2\)。尝试变成整除,于是发现 \(-10\) 就整除了。

\(b_i=\dfrac{a_i-10}{i}\),答案 \(b_i\)\(0, 2020, 4036, 6052, 8068, 10084, 12100, 14116, 16132, 18148, 20164\)

不看前面几项。我草这是等差数列。差是 \(2016\),很吉祥啊!

所以 \(b_n=2020+2016(n-1)\)\(a_n=n\cdot b_n+10=n(2020+2016(n-1))+10\),输出即可。

很快把公式抄进代码里,和 \(1\sim20\) 的正确答案比一下。????????为啥这正确答案还带突然变小的???????

这并不困难。发现突然变小的那一项和我们的答案正好差 \(233333\),很容易想到是 \(\bmod 233333\) 啦。

Task 3

https://oeis.org/A097430

Task 4

input4.txt 显然是读入一张图。随便输入一点普通图,发现结果总是 \(n^2\),直到你输入了一个不连通的图 \((V=\{1, 2, 3, 4, 5\}, E=\{\small(1, 2), (2, 3), (4, 5)\normalsize\})\),发现答案是 \(13=3^2+2^2\)。这就很显然了,答案即 \(\sum\textbf{连通块的大小}^2\)

Task 5

input5.txt 经过观察,先读入 \(n-1\) 条有权边(应该是构成一棵树),再读入 \(m\) 组点对,计算答案。

先试试 \(m=1\) 的情况。对于 \((u,v)\),容易发现就是 \(\operatorname{dist}(u,v)\)

再试试 \(m=2\),发现答案非常神秘,为啥那两个点对的距离是 \(5\)\(20\),最后的答案还能是 \(17\) 啊。于是试了一堆二元运算符后发现答案是所有距离的异或和,就离谱。

Task 6

input6.txt 长得和 input5.txt 一样捏。所以就很轻松了,发现不同点在于 \(\operatorname{dist}(u,v)\) 变成了 \(\min\limits_{t\in(u\to v)} w_t\)。仍然是异或全部权值。

然后你发现你错了。实际上可以通过输入询问点对 \((u,u)\) 来获取 \(\text{minn}\) 的初值应为 \(1987654321\)

Task 7

(表格在洛谷可能会寄,请移步博客园

输入规模又变小了。设每次读入的两数为 \((n,m)\),直接打表:

\(n\) \(1\) \(2\) \(3\) \(4\) \(5\) \(6\) \(7\) \(8\) \(9\)
\(m=1\) \(1\) \(2\) \(3\) \(4\) \(5\) \(6\) \(7\) \(8\) \(9\)
\(m=2\) \(2\) \(5\) \(7\) \(10\) \(12\) \(15\) \(17\) \(20\) \(22\)
\(m=3\) \(3\) \(7\) \(12\) \(16\) \(19\) \(25\) \(28\) \(32\) \(37\)
\(m=4\) \(4\) \(10\) \(16\) \(24\) \(28\) \(36\) \(40\) \(48\) \(54\)
\(m=5\) \(5\) \(12\) \(19\) \(28\) \(37\) \(46\) \(51\) \(60\) \(67\)

观察 \((m=2)\Rightarrow(m=3)\),打表 \(a_{n,m}-a_{n,m-1}\)

\(n\) \(1\) \(2\) \(3\) \(4\) \(5\) \(6\) \(7\) \(8\) \(9\)
\(m=(1\Rightarrow2)\) \(1\) \(3\) \(4\) \(6\) \(7\) \(9\) \(10\) \(12\) \(13\)
\(m=(2\Rightarrow3)\) \(1\) \(2\) \(5\) \(6\) \(7\) \(10\) \(11\) \(12\) \(15\)
\(m=(3\Rightarrow4)\) \(1\) \(3\) \(4\) \(8\) \(9\) \(11\) \(12\) \(16\) \(17\)
\(m=(4\Rightarrow5)\) \(1\) \(2\) \(3\) \(4\) \(9\) \(10\) \(11\) \(12\) \(13\)

再差分,打表 \(b_{n,m}-b_{n-1,m}\)

\(n\) \(1\Rightarrow2\) \(2\Rightarrow3\) \(3\Rightarrow4\) \(4\Rightarrow5\) \(5\Rightarrow6\) \(6\Rightarrow7\) \(7\Rightarrow8\) \(8\Rightarrow9\)
\(m=(1\Rightarrow2)\) \(2\) \(1\) \(2\) \(1\) \(2\) \(1\) \(2\) \(1\)
\(m=(2\Rightarrow3)\) \(1\) \(3\) \(1\) \(1\) \(3\) \(1\) \(1\) \(3\)
\(m=(3\Rightarrow4)\) \(2\) \(1\) \(4\) \(2\) \(1\) \(4\) \(2\) \(1\)
\(m=(4\Rightarrow5)\) \(1\) \(1\) \(1\) \(5\) \(1\) \(1\) \(1\) \(1\)

整理一下。

\(n\) \(2\) \(3\) \(4\) \(5\) \(6\) \(6\) \(8\) \(9\)
\(m=2\) \(2\) \(1\) \(2\) \(1\) \(2\) \(1\) \(2\) \(1\)
\(m=3\) \(1\) \(3\) \(1\) \(1\) \(3\) \(1\) \(1\) \(3\)
\(m=4\) \(2\) \(1\) \(4\) \(2\) \(1\) \(4\) \(2\) \(1\)
\(m=5\) \(1\) \(1\) \(1\) \(5\) \(1\) \(1\) \(1\) \(1\)

显然即 \(c_{n,m}=\gcd(n,m)\)。倒推一下就能得到 \(a_{n,m}=\sum\limits_{i=1}^n\sum\limits_{j=1}^m \gcd(i,j)\)

贺一下 P2398 的代码即可。\(n\ne m\) 时是一个很小的点,所以直接暴力。

Task 8

很多人说这一问很难,但是我觉得还好捏。

随便输进去一个排列,发现答案是 \(\dfrac{n(n+1)}2\),很容易想到答案是这个数组的 \([l,r]\) 数量。

于是输入 \(\{1,2,1,2\}\),发现答案是 \(6\)。枚举一下 \([l,r]\) 就能发现求的是本质不同的子串个数

去 P2408 贺个题解改一改即可。

Task 9

input9.txt 显然让我们输入一些点对。瞎输了一下,为啥是小数啊。

于是输入 \((1,2), (3,4)\),发现答案是 \(2.828\approx2\sqrt2=\sqrt8\)。很显然是 \((x_i,y_i)\) 在平面上两点的距离。

那么就很简单了,多输入几个数就能发现是平面最近点对。

去 P7883 贺个代码即可。

Task 10

这种题目总是有一些 Task 是不正经的 /hanx。

纯答案题解

  • Task1:对于字母 \(\texttt{a}\sim\texttt{z}\),映射 \(\texttt{yfrbkgimujvphatdsnelozcxwq}\)
  • Task2:\(a_n=\Big(\normalsize n(2020+2016(n-1))+10\Big)\normalsize\bmod 233333\)
  • Task3:\(a_n=\left\lfloor\sqrt{\dfrac n\pi}\right\rfloor\)
  • Task4:给定一张图,输出 \(\sum\textbf{连通块的大小}^2\)
  • Task5:给定一棵有边权树,输出 \(\oplus \operatorname{dist}(u,v)\)
  • Task6:给定一棵有边权树,输出 \(\oplus \operatorname{minw}(u,v)\)
  • Task7:\(\sum\limits_{i=1}^n\sum\limits_{j=1}^m\gcd(i,j)\)\(n\ne m\) 的情况允许暴力。
  • Task8:本质不同的子串个数。
  • Task9:平面最近点对。
  • Task10:\(10\)invalid input!
posted @ 2023-07-19 21:50  liangbowen  阅读(27)  评论(0编辑  收藏  举报