zoukankan      html  css  js  c++  java
  • 省选模拟59

    A. 杨柳

      发现每个位置同一时刻只有一个棋子是废限制,所以这题就没了。

      所以可以考虑二分图带权匹配,然而会tle,所以直接在原图上跑费用流就行了。

    B. 景中人

      考虑dp,令$dp[i][j][k]$表示$[i,j]$这一段区间所有纵坐标大于等于k的点全部被覆盖的最小花费。

      转移的话可以考虑,所有的矩形的横坐标只有相离或者包含两种关系,所以一种方案是加入一个横坐标包含整个区间的矩形,另一种是考虑将整个区间分成两半转移。

      所以单次转移$O(n)$,总复杂度$O(n^4)$。

    C. 钦点

      考场上打了一个$O(Tnlog^4)$的暴力,然而跑不满常数极小,所以开了O2之后卡了卡常就过了。实际上就是搞了一个线段树分治,每次加入就行了。

      然后正解的思路类似,建出若干虚点,然后暴力建出整张图即可,之后找到最大的连通块,枚举删掉这个连通块之内的某个点,之后剩余最大连通块的最小值就是答案。

      然后还有几个优化,就是可以存最小质因子来预处理出每个数的质因数分解,然后可以快速得到约数。可以发现只处理仅包含两个质因子的数就可以考虑到所有情况,所以复杂度$O(nlog^2a)$

  • 相关阅读:
    Java Synchronized的用法
    静态方法中不能new内部类的实体对象
    android ViewGroup事件分发机制
    安卓设备通过USB接口读取UVC摄像头权限问题
    android View事件分发机制结论
    函数指针与指针函数以及typedef
    GeoHash
    快速排序,C语言实现
    字符串的几个算法
    ANSI C与GNU C
  • 原文地址:https://www.cnblogs.com/hzoi-cbx/p/12616223.html
Copyright © 2011-2022 走看看