zoukankan      html  css  js  c++  java
  • 模拟44 题解

    A. D

    显然对于每一个点,它左侧的区间gcd是单调不增的。

    因为gcd一旦减少至少减半,不同取值不超过log个。

    从左到右扫一遍的过程中,维护一个单调的pair数组。

    第一维为区间gcd值,第二维为左端点下标。

    显然我们只关心同一个gcd值最小的左端点。

    不断维护一下这个元素个数不超过log的单调数组,

    暴力修改更新答案就可以。

    复杂度貌似是$O(nlog^2n)$的,

    然而如果均摊的话,每个数调用gcd是log级别的,总复杂度应为$O(nlogn)$。

    B. E

    最近做了很多这类关于区间的题,大致思路都是排序后贪心。

    还是首先将2n个数排序。

    考虑2n个数中的最小值和最大值。

    如果最值不在同一组中,

    那么有两种情况:

    1.最值被分到R。

    那么另一个组应该取得极差最小的n个属于不同组元素。

    显然的单调指针问题,思路类似数颜色的莫队做法。

    2.最小值被分到R,最大值被分到B。

    则一个最小值和一个最大值固定了。

    显然使R取得每组的最小值,B取得每组的最大值。

    任何交换都使答案更差。

    C. F

    首先是最弱智的dp,考虑两个指针的位置。

    稍微思考一下发现只要一个指针的位置就可以了,因为另一个指针的位置一定指向前一个操作应值的位置。

    然后dp就省掉了一维,稍微观察一下转移,

    一个是区间加法,一个是对各点dp值加减下标后取个最值,线段树优化就完了。

  • 相关阅读:
    Nginx负载均衡+代理+ssl+压力测试
    Nginx配置文件详解
    HDU ACM 1690 Bus System (SPFA)
    HDU ACM 1224 Free DIY Tour (SPFA)
    HDU ACM 1869 六度分离(Floyd)
    HDU ACM 2066 一个人的旅行
    HDU ACM 3790 最短路径问题
    HDU ACM 1879 继续畅通工程
    HDU ACM 1856 More is better(并查集)
    HDU ACM 1325 / POJ 1308 Is It A Tree?
  • 原文地址:https://www.cnblogs.com/skyh/p/11532860.html
Copyright © 2011-2022 走看看