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$比较。

  • 相关阅读:
    Mysql创建自定义函数
    本草纲目之五味四气
    linux svn命令
    linux命令提升
    php isset缺陷 用array_key_exists
    jquery之ajax
    简单的小游戏(猜数字)
    小球上下左右移动
    如果想在输出面板中排列出一个乘法口诀表请用以下方法
    并联电路
  • 原文地址:https://www.cnblogs.com/Duan-Yue/p/11749206.html
Copyright © 2011-2022 走看看