
牛课多校
z听歌的小孩z
这个作者很懒,什么都没留下…
展开
-
2019牛客暑期多校训练营(第十场)
比赛链接 E Hilbert Sort Hint :希尔伯特曲线的构造过程,假设一阶图形的开口为这个曲线的正方向,那么对于二阶来说,左上是一阶图形向左,右上是一阶图形向右,左下右下都是向上。三阶,四阶。。n阶依次内推。 题意:给你一个方阵,给你一些点,让你按照希尔伯特曲线经过的顺序为这些曲线排序。 题解:四分递归+排序。我们可以依次递归将每个点都编一个号,然后通过这个编号进行排序。从大到...原创 2019-09-03 16:56:44 · 110 阅读 · 0 评论 -
2019牛客多校赛第十场F.Popping Balloons(线段树)
题目链接 题意:在一个n*n的二维空间上有任意个气球,你可以横着发射三发子弹,竖着发射三发子弹,且要求每连续两发子弹的间距要恰好等于r。每发子弹可以打掉一排或者一列的气球,问你最多可以打掉多少个气球。 题解:这题思路其实不难想。将每连续三行的气球合并放在线段树里,维护气球个数最大值。然后暴力枚举每三列气球,每次先将这三列的气球在线段树去掉,更新后再求得行最大值,就是答案,然后再把删除的点的更新...原创 2019-09-03 18:53:01 · 199 阅读 · 0 评论 -
2019牛客暑期多校训练营(第九场)
比赛链接 D Knapsack Cryptosystem 题意:给你n个数,让你从中选出任意个数恰好组成s 题解:首先考虑搜索,对于每一个物品都有两个状态,选或者不选。这样的时间复杂度是2^n,n最大有36,显然会超时。那有什么办法降低时间复杂度吗?这时就得请出神奇的折半搜索。将n个物品分为两半,先对前n/2的物品进行dfs,将所有可能组合以及值用map记录下来,再对后n/2的物品进行dfs...原创 2019-09-04 07:10:36 · 119 阅读 · 0 评论 -
2019牛客暑期多校训练营(第七场)E.Find the median(权值线段树 + 区间离散化)
题目链接 题意:这题就是先让你套个公式把n个区间算出来,然后对于单个区间在序列里加上这个区间内所有数,然后再求此时序列的中位数。 题解:中位数实际上就是求整个序列第n/2大,考虑权值线段树,但是因为区间范围太大,所以要对区间进行离散化。 离散化之前,首先要将所有区间的左端点减1。为什么呢?因为离散化后线段树上的每个点存的实际上是一段区间,那么比如区间【3,8】,离散化之前我们要把它变成(2,...原创 2019-10-04 10:03:32 · 202 阅读 · 0 评论