我的赛时做法是官方题解的做法(\(M\)就是枚举\(i\times j\)),但是维护用的是并查集;官方题解的维护应该是这样的:从\(n\)倒序枚举到\(1\),对于当前数字,找到小于\(\frac{M}{x}\)的还没被用过的最大的数字,我们维护一个栈,观察到\(\frac{M}{x}\)单调递增,于是每次我们将新增加的可行的数放进栈里面,然后弹出栈顶即可
然后看看洛谷题解,清一色的找规律。其实我最开始一眼就看出这个规律的,但是证明不了,然而洛谷都是写暴力找出来的,所以我们发现某个规律但是证明不了的时候一定要学会用打表,写这篇题解就是为了提醒这个