Warning: session_start(): open(/tmp/sess_ae01dbd0812314fcd03140d657da3536, O_RDWR) failed: No space left on device (28) in /data/wiki/inc/init.php on line 239

Warning: session_start(): Failed to read session data: files (path: ) in /data/wiki/inc/init.php on line 239

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/auth.php on line 430

Warning: mkdir(): No space left on device in /data/wiki/lib/plugins/dw2pdf/vendor/mpdf/mpdf/src/Cache.php on line 19
Temporary files directory "/data/wiki/data/tmp/dwpdf/375/" is not writable
Writing /data/wiki/data/cache/d/de2edb2fcb553ea79b79c722a4e13dbc.captchaip failed

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/actions.php on line 38

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/lib/tpl/dokuwiki/main.php on line 12
2020-2021:teams:farmer_john:jjleo:2020.09.06-2020.10.14 [CVBB ACM Team]

用户工具

站点工具


2020-2021:teams:farmer_john:jjleo:2020.09.06-2020.10.14

开坑 主要是cf和atcoder 记录一下非水题

CF1404B

题意

博弈论,两人轮流在树上跑,每次分别可以移动不超过 $da$ 和 $db$ 的距离,问先手能不能追到后手。

题解

三种情况必胜:

  • 两者距离不超过 $da$。
  • $2 \times da \ge db$,以 $a$ 为根往下逼近即可。
  • $2 \times da \ge \text{diameter}$,卡中点即可。

证明我吐了,有时间再来补。

CF1404C

题意

给定一个序列 $a_i$,如果 $a_i = i$,那么你可以将它删掉,多次询问如果强制前 $x$ 个数和后 $y$ 个数都不能删,最多能删几个数。

题解

发现问题的可二分性巨佬题解

设 $\text{lim}_i$ 表示如果禁止删除的长度 $\le \text{lim}_i$,那么该位置可以被删,否则不能被删。

考虑二分求解,对于我们正在二分的 $\text{mid}$,等价于求前面满足 $\text{lim}_j \ge \text{mid}$ 的有多少个,这个过程可以使用主席树优化到 $O(n \log n)$。

对于询问,直接询问 $[1,n-y]$ 中 $\text{lim}_i \ge x$ 的个数即可,主席树上查询即可。

CF1404D

题意

交互题,给定 $1$ 到 $2n$ 共 $2n$ 个数,你可以选择当 A 或 B。

  • A 要将 $2n$ 个数两两一组分为 $n$ 个。
  • B 要在上述 $n$ 组中每组选一个使得选择数之和是 $2n$ 的倍数。

你需要选择一个角色扮演并获胜。

题解

  • $n$ 为偶数,根据奇偶分析可以得到 $$\frac{n(n+1)}{2} \equiv \frac{n}{2} \pmod n$$ 只要按照 $(i, i + n)$ 的方式分,就可以保证结果在模 $n$ 意义下不为 $0$,那么在模 $2n$ 意义下更不可能为 $0$,因此选 A 必胜。
  • $n$ 为奇数,对于 A 给出的一种方案,我们将每组之间的两点连红边,在 $(i, i + n)$ 之间连蓝边,如下图所示,那么我们黑白染色后选黑点,可以发现选的所有点在模 $n$ 意义下两两不同,根据奇偶分析,有 $$\frac{n(n+1)}{2} \equiv 0 \pmod n$$ 因此选 A 必胜。

CF1404E

题意

给定一个 $n \times m$ 的方格图,分黑白格,要求用 $1 \times x$ 和 $x \times 1$ 的砖块铺满所有黑格,白格不能放砖,且所有砖不能重叠,问最少需要多少砖。

题解

考虑一开始一个黑格放一个砖块,然后进行合并,砖块不能拐弯合并等价于求如下二分图的最大独立集。

CF1406D

题意

给定一个序列 $a_i$,将其拆分成两个序列 $b_i$ 和 $c_i$,要求满足 $a_i=b_i+c_i$,且 $b_i$ 递增,$c_i$ 递减。求 $\max(b_i,c_i)$ 的最小值。多组询问,每次对 $a_i$ 进行区间加。

题解

$\max(b_i,c_i)$ 等价于 $\max(b_n,c_1)$,在 $b_1$ 和 $c_1$ 固定时,$b_i$ 的增量越少越好,所以如果 $a_i > a_{i-1}$,那么将多的部分加到$b_i$ 上面,否则将多的部分减到 $c_i$ 上面。因此答案为 $$\max(b_n,c_1)=\max(x+\sum_{i=2}^n\max(0,a_i-a_{i-1}),a_1-x)$$ 设 $y=\sum_{i=2}^n\max(0,a_i-a_{i-1})$,则答案为 $\max(x+y, a_1-x)$,直接取 $x=\lfloor \frac{a_1+y}{2} \rfloor$ 即可。

修改时,区间加只会改变两个点的差分值,因此可以 $O(1)$ 维护。

CF1418E

题意

有 $n$ 个怪,每个怪物有一个攻击力 $d$。有 $m$ 个武器。每个武器有两个属性,耐久度 $a$ 和 防御值 $b$。对于一个打怪顺序,按顺序处理每一个怪:

  • 如果当前耐久度为 $0$,那么会受到 $d$ 点伤害。
  • 如果当前耐久度不为 $0$,如果 $d \ge b$,那么令 $a$ 减少一,否则无事发生。

对于每个武器,所有 $n!$ 种打怪顺序出现概率相等,求期望收到的伤害。

题解

考虑先把所有怪按攻击力排序,那么对于一个武器,设 $d \ge b$ 的怪物有 $x$ 个。那么对于这 $x$ 个怪物,他能造成伤害当且仅当他前面至少有 $b$ 个怪物属于这 $x$ 个怪物,概率为 $\frac{x-b}{x}$;对于剩下 $n - x$ 个怪物,他和上述 $x$ 个怪物的相对顺序相当于插空,他能造成伤害当且仅当上述 $x$ 个怪物至少有 $b$ 个在它前面,概率为 $\frac{x+1-b}{x+1}$。

期望还需要乘以怪物他们自己的攻击力,上述 $x$ 个怪物和 $n-x$ 个怪物分别是一个后缀和前缀,因此求个前缀和乘上即可。

CF1418F

题意

题解

CF1418G

题意

给定一个序列,问有多少个连续的子序列其中每个数字都恰好出现了三次。

题解

CF1419F

题意

题解

CF1420E

题意

题解

CF1416D

题意

题解

CF1408E

题意

题解

CF1408G

题意

题解

CF1408H

题意

题解

CF1408I

题意

题解

CF1422D

题意

题解

CF1422F

题意

题解

CF1430F

题意

题解

CF1430G

题意

题解

ABC178F

题意

题解

ABC179D

题意

题解

ACL1B

题意

题解

ACL1A

题意

题解

ACL1D

题意

题解

ACL1E

题意

题解

ABLF

题意

题解

ARC104D

题意

题解

ARC104E

题意

题解

ARC104F

题意

题解

HHKB2020D

题意

题解

HHKB2020F

题意

题解

ARC105D

题意

题解

ARC105E

题意

题解

ARC105F

题意

题解

2020-2021/teams/farmer_john/jjleo/2020.09.06-2020.10.14.1603325447.txt.gz · 最后更改: 2020/10/22 08:10 由 jjleo