模拟测试54

Posted hz-rockstar

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模拟测试54相关的知识,希望对你有一定的参考价值。

T1:
  所有不互质的数对一定在同一集合内。

  并查集维护每个数所在集合,以数对为链合并。 

  但是这样复杂度为$O(n^2)$的。

  考虑优化,两个数不互质,意味着他们之间有相同质因子,把每个数分解质因数,和他的质因子合并即可。

  线筛处理出最小质因子后可以$O(logn)$求所有质因子。  

  时间复杂度$O(nlogn)$。

T2:

  考虑状压,设数组$dp[i][j]$,表示经过$i$条路径,经过路径状态为$j$的情况存不存在。

  时间复杂度$O(nm2^d)$,需要优化。

  折半搜索,先DP前一半,再DP后一半,枚举中间点拼和起来即可。

  时间复杂度$O(nm2^d/2+n2^d)$

T3:

  正解是一个大模拟。

  将点与点之间的位移看成线段,那么所有满足$x_i=x_i-1$或$x_i-1<x_i<x_i+1$或$x_i-1>x_i>x_i+1$的点都可以删掉。

  用链表维护没有被删掉的点即可。

  将每次的位移线段处理出来,压入堆中,将所有询问离线排序,从小到大枚举,每次将长度小于当前长度的线段扔掉,将上下两条线段合并,首位处要特判。

  然而细节很多不是很好写。

  时间复杂度$O(nlogn)$

以上是关于模拟测试54的主要内容,如果未能解决你的问题,请参考以下文章

csp-s模拟测试54x,y,z题解

[考试反思]0928csp-s模拟测试54:转瞬

2019.9.28 csp-s模拟测试54 反思总结

模拟与测试数据库?

9.28 csp-s模拟测试54 x+y+z

NOIP模拟_54测试并查集二进制搜索区间序列类