模拟测试65

Posted hz-rockstar

tags:

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

T1:

  枚举$m$的个数,$O(1)$算出有几个$x$符合条件。

  这样不仅效率低下,还会算重。

  把$m$一定时的所有结果拍在数轴上发现仅当$ym>=lcm(n,m)$时会算重。

  枚举到$lcm$即可。

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

T2:

  直接统计复杂度太高,考虑换一个思路。

  枚举$gcd$,将所有边权为$gcd$倍数的边都连接起来,求树上直径即可。

  发现只有边权的因数才会成为$gcd$,所以只枚举约数即可。

  维护连接的边和点,一个一个删除。

  每条边至多被枚举$sqrt{v}$次,复杂度可以接受。

  时间复杂度$O(nsqrt{v})$。

T3:

  神贪心。

  设起点为$s$,终点为$e$,最优决策一定为$s$和$e$中间的边都尽可能经过一次。

  由于要到达终点,$s$和$e$外侧的每条边至少被经过两次。

  而在向左走的步数一定的情况下,$e$在一定区间内。

  枚举$e$的位置,然后用堆维护中间的边,找出最大的几条边,仅走一次。

  其他边都要走两次。

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

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

[CSP-S模拟测试]:d(贪心+树状数组)

猎豹MFC--模拟键盘消息keybd_event mouse_event

单元测试——使用模拟对象做交互测试

模拟测试特征和模拟方法

对于 Java 测试,我应该模拟客户端还是模拟服务器

带有模拟的 MvcTest 是集成测试或单元测试