题目大意
你有一个数列 $a_1,a_2,\cdots,a_n$。你可以进行这样的一次操作,每次选择数列中其中一个数然后将其除 $2$ 下取整,也就是选择一个数 $a_i$,变成 $\lfloor \frac{a_i}{2} \rfloor$。
一共有 $q$ 个询问,每次你考虑数列中 $[l,r]$ 这段数,即 $a_l,a_{l+1},a_{l+2},\cdots,a_r$,对这些数字进行不超过 $k$ 次操作,这些数字的总和最小值可能是多少。
$1 \leq n \leq 10^5,\ 1 \leq q \leq 5*10^5$
$1 \leq a_i \leq 10^9,\ 0 \leq k \leq 10^9$
5000 ms,256 MB
// 这不是竞赛里那个多项式取模的东西,是离散课本里的特征根法
抱着在离散课装逼的心态挖了这个坑,填了两个星期
题目大意
有一棵 $n$ 个点的树,点编号 $1,\cdots,n$。有 $Q$ 次操作,操作有三种类型:
$1\ X\ L\ R$:公司 $X$ 在编号属于 $[L,R]$ 的点上各开一家商店。如果该公司曾经有过商店,则它以前的商店全部清除,只算这次的。
$2\ X$:公司 $X$ 的商店全部清除。
$3\ C\ M\ P_1\ P_2\ …\ P_M$:有个人在 $C$ 号点,他指定了他喜欢的公司为 $P_1,\cdots,P_M$,你要找到一个离 $C$ 最近的点,使得这个点有他喜欢的公司开的商店。求这个距离。
单组数据:$n \leq 50000,\ Q \leq 10^5,\ \sum m \leq 10^5$
10 组数据共 10s。
题目大意
这是一道交互题。
现在有若干只地鼠,你只知道地鼠数量 $\leq M$,你要把这个数量猜出来。
你有 18 个风扇。每天初始,你给每个风扇设定它的叶片数 $b_i$(2 到 18 之间,从 0 开始标号),然后都让 0 号叶片指向正下。接着,每只地鼠独立地、等概率地选择一个风扇,把它的叶片往前拨一位(即原来是 $j$ 号叶片向下的现在变成 $(j+1)\bmod b_i$ 号叶片向下)。
你告诉电脑 $b$ 序列,它告诉你这天结束时各风扇指向正下的叶片编号。
你要在至多 $N$ 天之内猜出来。
$Task1: N=365,\ \ M=100$
$Task2: N=7,\ \ M=10^6$