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\) 种情况找到性质的过程,话说这种找性质的过程怎么学啊....