用户工具

站点工具


2020-2021:teams:wangzai_milk:weekly14

这是本文档旧的修订版!


2020.08.01-2020.08.07 周报

团队训练

_wzx27

专题

暂无。

题目

因为给牛客七的 $I$ 题折磨了,所以想做一下贪心题。(虽然 $I$ 好像并不是贪心,只是一开始以为是^)

CF贪心练习

比赛

牛客七、八及cf加训。

Infinity37

专题

题目

比赛

Zars19

专题

暂无。

题目

比赛

牛客七、八及cf加训。

本周推荐

Zars19

来源CF1326E - Bombs

tag:思维,线段树。

概述:给出长度为 $n$ 的两个排列 $p,q$ ,按照顺序从 $1$ 到 $n$ ,把 $p_i$ 加入集合,如果位置 $i$ 有炸弹则从集合中取出一个最大值,结果是最后集合中的最大值。第 $i$ 个答案回答的是 $q_1,q_2,\ldots q_{i-1}$ 处有炸弹时的结果。

答案:我们观察到答案是单调不上升的,如果答案至多为 $x$ ,我们就需要让 $x+1,x+2,\ldots,n$ 都被炸掉,条件就是对于每个位置右边大于 $x$ 的 $p_i$ 的数量都不多于右边的炸弹数量。可以线段树维护 $右面不小于当前答案的p_i的数量-右面炸弹数量$ ,如果小于等于 $ 0 $ 则减小当前答案。

comments:神奇的转换思维。

Infinity37

来源:codeforces719E

tag:线段树,矩阵乘法,数学

概述

给出序列a1~an,有两种操作

操作1:区间l,r+x

操作2:对区间l,r中的数对应的fib数列第ai项求和。

答案

由于矩阵乘法满足分配律,于是我们可以维护一颗线段树,每个节点是一个矩阵,如果区间+x,就代表着区间向前递推x步,换句话说就是乘以了fib数列转移矩阵的k次幂。

我们维护线段树push_up使左区间和右区间矩阵相加,将lazy设为fib数列转移矩阵,每次区间+x就直接使$lazy*fib^k$

comments:划重点,因为矩阵乘法满足分配率所以可以直接用线段树维护,注意各类数学性质。

2020-2021/teams/wangzai_milk/weekly14.1596775666.txt.gz · 最后更改: 2020/08/07 12:47 由 wzx27