• 2018 多校联合训练 8


    Problem A

    Problem B

    考虑把某条边卡在槽内,这样两个点的位置确定了,都在边上,

    当这条边长度小于等于槽宽度的时候,如果剩下那个点在区域里面,

    那就直接返回三角形的高。

    否则用一系列公式算出三角形在槽内的高度,注意也要判断剩下的点是否在区域里面。

    最后,别写错叉积……

    Problem C

    Problem D

    Problem E

    签到题

    Problem F

    Problem G

    Problem H

    Problem I

    Problem J

    预处理出$f[i]$表示从$i$开始的答案

    $g[i]$表示从$1$开始到i的答案

    把答案拆成$3$个部分。

    如果把$x$位置的高度改成$y$,先找到$x - 1$时的答案,再判断$y$是否大于之前的最大值。

    然后在二分跳到后面第一个大于$y$的位置$pos$,再加上预处理的$f[pos]$即可。

    Problem K

    三进制状压DP,状态$0$表示没有气球,$1$表示有气球但是尚未戳破,$2$表示有气球已经戳破了。

    由此可以看出某一位的状态如果是$2$,那么一直都是$2$了。

    首先把少的那一维弄成列。设$dp[i][mask]$为前$i$行转移完状态为$mask$的方案数。

    然后依次枚举下来。首先对于第$i$行,我们可以选择在这一行中戳破气球,也可以选择不戳破这一行的气球。

    如果选择不戳破这一行的气球,这一列有气球,那么该状态的位,需要从$0$变成$1$。

    如果选择戳破这一行的气球,那么只要戳一个就行,枚举哪一个,把对应位上的状态变成2就可以了。

    最后统计答案的时候状态里面不能有$1$,$2$的个数就是戳破气球的个数。

    Problem L

  • 相关阅读:
    Vue 从入门到进阶之路(十四)
    Vue 从入门到进阶之路(十三)
    Vue 从入门到进阶之路(十二)
    Vue 从入门到进阶之路(十一)
    vue-cli 3.x 开发插件并发布到 npm
    2018 年终总结 & 2019 年度计划
    帝都夜话
    移动端实现拖拽的两种方法
    前端面试(原生js篇)
    在前端获取图片宽高
  • 原文地址:https://www.cnblogs.com/cxhscst2/p/9508669.html
Copyright © 2020-2023  润新知