【艰苦时期  】题解
】题解
  .在劫难逃
.在劫难逃
 - 把所有情况枚举出来,取前 - 大即可。 
- 考虑 - ,我们先对每种宝箱做背包。 - 表示到第 - 个宝箱得到价值为 - 的方案数,则有 - 于是只要 - 转移即可, - 为每个宝箱最大值的和。 
 统计答案就很简单了。
- 难度: 
 劫富济贫
劫富济贫
 - 枚举全排列即可,计算最大收益即可。 
- 综合算法 - 由于没有相同的 - ,可以偷取每个金库的钱, - 即可 
- 考虑贪心,对于那种先以 - 为第一关键字排序以 为关键字排序在统计肯定是错的。 - 于是我们要反悔:如果已经积累要偷金库的数量大于 却价值很高。我们要舍去价值小的来替换这个。如果小于 - 直接加入计划即可。 - 这些都可以用小根堆来维护的。时间复杂度 
- 难度: 
 占卜豪杰
占卜豪杰
 - 对于每个 - 暴力在 - 中扫一遍记录上次扫到的位置 - ,找到第一个大于 - 且 - 的位置,然后不停地更新 - 即可。时间复杂度 
- 综合算法 - 因为是个排列满足 - 递增且唯一,这样就可以很快的判断了。 
- 先用一个 - 记录所有 - 在 - 中出现的位置,每次查询 - 只要二分容器中所有与 - 相等值的最前位置,也与算法 - 一样记录一个 - 不停的更新即可。 - 虽然还有更高级的离线 - 做法,这里就不说了。 
- 难度: 
 万劫不复
 万劫不复
 - 每次修改都暴力做最长上升子序列即可,时间复杂度 
- 综合算法 - 对于 - 测试点只要判断原序列的 - 或者 - 是否为 - 的必要元素,如果是只要 
 输出- 即可,否则还是输出 - 。( - 为原序列的 - ) - 那如何判断是否为必要元素呢? 先对原序列每个 - 做一遍 - 以他为结束的 - 记为 
 ,以他作为起始的- 记为 - 。易得原序列的 - 就为 - 。如果 
 满足- 就可以认为 - 是原 - 的必经元素。 
- 显然每次修改暴力做 - 是不可行的复杂度至少为 - 。于是我们要思考每次修改会对答案形成怎样的影响。 - 先对原序列每个点做一遍以他为结束的 - 记为 - ,以他作为起始的 - 记为 - 。易得原序列的 - 就为 - 。 - 每次对于修改一个值分几种情况来考虑,我们记修改过后的 - 为 - , - 同理。 - 对于 - 的情况如果 - 那就更新答案 - 对于 - 的情况相对复杂一点。我们要先判断此次修改的点是否为原序列 - 的必经之点,判断的方法很简单如果 - ,并且这样的情况有且只有一种。 - 剩余的就是不变的情况了。于是我们这道题目就做完了。求 - 可以使用树状数组来实现 - 正着 - 倒着即可并且要离散化一下就可以了。用离线来实现。 
- 难度: 

 京公网安备 11010502036488号
京公网安备 11010502036488号