zoukankan      html  css  js  c++  java
  • csp-s模拟90

    T1:

    每格的不透明度相当与一个边权,转化为从起点到终点所有路径的最大值。实现最长路,最好用$dijk$。

    T2:

    对于$N=100$,$M=8$,考虑状压$dp$。要用一种状态表示某一行的矩形覆盖情况,其实只需要关心矩形端点。用八位四进制,每位上$1$表示这一格是矩形左端点,$2$右端点,$3$既是左又是右端点,$0$不是端点。转移时,枚举下一行的状态,对于下一行的每一个矩形,如果不包含在上一行则产生$1$花费。状态数很少,考虑极限情况一行$8$个$1$,发现最终状态只与某一位是否单独成矩形有关(状态为$3$),不单独成矩形则一定与相邻合成大矩形(状态为$100...002$),也就是可以变成$01$串考虑,总状态$2^8$。对于每行的状态可以$dfs$预处理。总复杂度$Theta(N*M*2^{2*M})$。

    T3:

    $30pts$:

    按顺序处理操作,对于询问,暴扫前面的矩形,判断是否与下、左边界有交点,取坐标最小中标号最大的矩形。$Theta(N^2)$.。

    $60pts$:

    坐标范围小,可以存储每一格做边界的矩形标号。每次询问按$x$从小到大,$y$从小到大,得到相应点,判断是否有边界落在点上。注意处理$x=0$的情况,可以单独处理。

    $100pts$:

    考虑每一个矩形对询问的贡献,发现它能更新一段区间的斜率的答案。对斜率离散化。分开考虑下、右边界,维护每个斜率的答案(优先坐标最小,其次序号最大),线段树区间修改,单点查询。最终把两个边界得到的答案转化到$x$或$y$比较。

  • 相关阅读:
    阅读心得10:《京东咚咚架构演进 》
    hadoop beginning
    ubuntu docker
    Ubuntu学习——第一篇
    flexsim diary
    apollo 3.0 硬件系统
    这是一份详细的Apollo自动驾驶平台上手指南
    详解百度Apollo感知技术、高精地图和小度车载系统
    Apollo 2.5推基于动态的实时相对地图解决方案
    Apollo在功能安全方面的探索
  • 原文地址:https://www.cnblogs.com/Duan-Yue/p/11749206.html
Copyright © 2011-2022 走看看