ARC136E

题面

给一个 \(n\) 个点的有向图,其中 \(i,j\) 存在边 \(i\rightarrow j\) 当且仅当 \(i< j\and \gcd(i,j)>1\)

\(i\) 个点的权值为 \(a_i\) ,求整个图的带权最长反链长度。

数据范围:\(n\le 10^6\)

题解

话说我为什么想着去模拟求最小链覆盖啊....这玩意很明显不能模拟的啊....

记录一下这个特殊的结构:

其实可以考虑一下 \((i,j)\) 什么时候可以到达,这需要分类讨论一下:(设 \(f(x)\)\(x\) 最小质因数。)

  • \(i\) 是偶数, \(j\) 是偶数:一定可以到达。(显然)
  • \(i\) 是偶数, \(j\) 是奇数:当 \(i\le j-f(j)\) 时可达( \(j-f(j)\) 一定是偶数。)
  • \(i\) 是奇数, \(j\) 是偶数:当 \(i+f(i)\le j\) 时可达。(同上)
  • \(i\) 是奇数, \(j\) 是奇数:当 \(i+f(i)\le j-f(j)\) 时可达。( \(i+f(i)\)\(j-f(j)\) 都是偶数)

然后你就会发现,如果你记 \(i\) 为线段 \(a_i\)

\[a_i= \begin{cases} [i,i] &i\text{为偶数}\\ [i-f(i)+1,i+f(i)+1] &i\text{为奇数} \end{cases} \]

那么 \(i,j\) 不可达 \(\rightarrow a_i\cap a_j\neq\varnothing\) ,也就意味着有重合的点,之后就简单了。

启发

  • 不要闲的去想模拟最小链覆盖!
  • 记下一个模型。
  • 或许可以学一下分析这 \(4\) 种情况找到性质的过程,话说这种找性质的过程怎么学啊....
posted @ 2022-04-02 15:55  qwq_123  阅读(62)  评论(0编辑  收藏  举报