其实不需要每次随机询问顺序,但是随机可以让询问次数远低于限制,实现稍微优秀即可低于 $1.3\times 10^5$。
题解中算法复杂度不依赖随机。
对于找出的独立集和连接独立集内点的边的整体二分,不难发现为 $(n/2+m)\log n$ 以内,其中 $n/2$ 为对于一半的独立集进行询问。
对于每个点,最多加入一次独立集,若不加入也会至少减去一条边,这部分询问为 $2(n+m)$(第一次询问找到独立集,第二次确定其他点连入边数),为独立集内点询问自环数量可以同时做,多一个 $n$。
数据范围内,最坏 $3\times 4000+2\times 10000+(4000/2+10000)\times 12=17600$,恰好严格正确。