题号 | A | B | C | D | E | F | G | H | I | J | K |
---|---|---|---|---|---|---|---|---|---|---|---|
状态 | Ø | - | - | - | Ø | - | O | - | O | - | O |
O 在比赛中通过 Ø 赛后通过 ! 尝试了但是失败了 - 没有尝试
比赛时间
2020-08-03 12:00-17:00
每个球员有一些粉丝,一个粉丝会去看某个球员比赛的条件是他喜欢这个球员或和他喜欢同一个球员的人喜欢这个球员。球员与粉丝的关系可以动态改变,问每一次改变之后,最少请多少球员来比赛才可以使得所有粉丝来看比赛。
2019牛客暑期多校第八场的E也是这个科技,不会线段树分治时间并查集(不知道这个叫什么我乱叫的)一周年纪念。其实就是把每一条边在线段树上加到它存在的时间里
记录一下没有粉丝的球员数,和不喜欢任何球员的粉丝数,并查集可以搞出连通块数,即可(如果没有不喜欢任何球员的粉丝,答案是 $连通块数-没有粉丝的球员$ )。
$f(x)$ 表示 $x$ 由连续三个数字组成的划分有多少种,给出 $l,r$ 求 $\sum_{k=l}^rf(k)$ 。
显然只要能求得出来所有 $f(x)$ ,就可以通过前缀和 $O(1)$ 得到 $\sum_{k=l}^rf(k)$ 。
先放一个写题解必画的图…这是当起始数字 $i=1$ ,长度固定为 $j=6$ 时的情况,差分一次我们发现 $+1$ 是从 $ij+3$ 开始往前跳两个数字一次, $-1$ 是从 $(i+1)j+1$ 开始往前跳一个数字一次。于是再差分一次( $+1$ 是跨度 $2$ 的差分),这样就可以枚举 $i,j$ 后 $O(1)$ 计入贡献,最后做几次前缀和还原原数组即可。
每张卡牌有四个维度,每个维度有三种取向(或者一个通配符代表可以视作任一种),先要选出一组三张牌,使得每个维度要么都一样,要么都不一样。
先统计每种牌的数量,一共只有 $81$ 种牌,暴力枚举两种确定第三种就好(但其实是只要超过 $21$ 种必有可组的牌,复杂度更小)。
每回合给出两个数字,你可以从中选一个,问最终最多能选得多少种数字。
把每回合的两个数字连边,每个连通块大小为 $n$ 则至少能选 $n-1$ 个(仅不选dfs树根节点),当仅当有环可以选 $n$ 个。