有 $m$ 位玩家 $1\sim m$,初始血量均为 $3$。玩家活着当且仅当生命值大于 $0$. 有 $n$ 次按时间顺序给定的追杀操作,每次形如 $(u_k,v_k)$,追杀操作按顺序进行。 执行操作 $u$ 追杀 $v$ 时,若二者都活着,那么 $v$ 的生命值减 $1$;否则不执行该操作。 现在有一名特殊玩家 $0$ 号,可以选取任意 $(i,v)$,其中 $1\leq i\leq n+1$,$1\leq v\leq m$,表示时空穿越到第 $i$ 次追杀前,并追杀玩家 $v$。 显然 $(i,v)$ 共有 $(n+1)\times m$ 个不同的选择方法,且不同的 $(i,v)$ 会导致最终存活玩家的集合不同。 对每个 $0\leq x\leq m$,求有多少种 $(i,v)$ 的选取方法,使最终恰有 $x$ 位玩家存活,输出 $m+1$ 个数。
给定数列 $a_1, a_2, \cdots, a_n$,可以对其进行下列操作。
- 花费 $a$ 魔法值,选择 $A$ 中的一个区间 $[l,r]$,将 $a_l, a_{l+1},\cdots, a_r$ 全部 $+1$.
- 花费 $b$ 魔法值,选择 $A$ 中的一个区间 $[l,r]$,将 $a_l, a_{l+1},\cdots, a_r$ 全部 $\times 2$.
扩展卢卡斯的练习题
题面较长。 Luogu - P3214 - [HNOI2011]卡农
共有 $4$ 种硬币。面值分别为 $c_1,c_2,c_3,c_4$。 某人去商店买东西,去了 $n$ 次,对于每次购买,他带了 $d_i$ 枚第 $i$ 种硬币,想购买价值恰好为 $s$ 的东西。 多次询问,每次询问形如 $(d_1,d_2,d_3,d_4,s)$,求付款方法数。 $1\leq c_i,d_i,s\leq 10^5$,$1\leq n\leq 1000$.
细节较多的计算几何题。用到了凸包、旋转卡壳、和亿些分类讨论。
地板有 $n$ 行 $m$ 列,一个机器人被安置在坐标 $(r_b, c_b)$,还有一个障碍位于 $(r_d, c_d)$。 每过一秒,机器人的坐标会 $(r, c)\rightarrow (r+d_r, c+d_c)$。 初始时 $d_r=d_c=1$,当机器人到达边界后,$d_r,d_c$ 会变化:
- 若机器人碰到上/下边界($r=1$ 或 $r=n$),下一秒 $d_r\leftarrow -d_r$,
- 若机器人到达左/右边界($c=1$ 或 $c=m$),下一秒 $d_c\leftarrow -d_c$.