什么年代了还有人出高精题啊……
首先题目相当于构造一个正整数序列,将其中不互质的点连边后能连通。
考虑令序列首位为所有小于 N 的质数乘积,则根据更相减损术,除了第二个位置显然都能与首位连边。
然后我们发现并不是很好解决。
考虑令序列中心为所有小于等于 N2 的质数乘积,则除了相邻的两个位置显然都能与中心连边。
可以牺牲两个质数的贡献来使这两个点连通。
但是牺牲了这两个质数之后又会有点不连通,于是再用几个大于 N2 的质数使它们连通即可。
然后用 CRT 合并即可。
代码:
1 |
|
什么年代了还有人出高精题啊……
首先题目相当于构造一个正整数序列,将其中不互质的点连边后能连通。
考虑令序列首位为所有小于 N 的质数乘积,则根据更相减损术,除了第二个位置显然都能与首位连边。
然后我们发现并不是很好解决。
考虑令序列中心为所有小于等于 N2 的质数乘积,则除了相邻的两个位置显然都能与中心连边。
可以牺牲两个质数的贡献来使这两个点连通。
但是牺牲了这两个质数之后又会有点不连通,于是再用几个大于 N2 的质数使它们连通即可。
然后用 CRT 合并即可。
代码:
1 | #include <cstdio> |
Related Issues not found
Please contact @Alpha1022 to initialize the comment