zoukankan      html  css  js  c++  java
  • 模拟测试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)$

  • 相关阅读:
    在CentOS 7中搭建Git服务器
    CornerStone的使用
    js中一些常用的基本函数
    Spring包的方法WebUtils.getParametersStartingWith(request,String)
    js打开新窗口的两种方式
    JSONObject和JSONArray
    document.ready()的用法
    class属性多个样式的用法
    java改变图片文件尺寸
    所有异常
  • 原文地址:https://www.cnblogs.com/hz-Rockstar/p/11619476.html
Copyright © 2011-2022 走看看