本人太菜,实在不会 T3,所以只有 T1,T2 的题解。
注:考场上只做出来了 Day1 T1,其他题参考了其他人的题解。
Day1
T1
题面
有 \(a\) 个有电的电池和 \(b\) 个没电的电池,每次只能选择两个电池放进手电筒,只有这两个电池全有电才能让手电筒启动。问最坏情况下最少可以让手电筒启动的尝试次数。
多测。
数据范围: \(2 \le a \le 10^3,1 \le b \le 10^3,1 \le T \le 10^3\)。
题解
如果我们选择了两个电池 \(u,v\),我们就在他们之间连一条无向边。
每一个方案对应一个无向图。
如果这个方案不可行,就意味着每一条边的两个端点都至少有一个没电的点,也即有电的点之间没有边。
所以方案不可行等价于这个图的最大独立集 \(\ge a\)。
于是我们可以 dp,设 \(f_{i,j}\) 表示 \(i\) 个点的图,最大独立集为 \(j\),的最少边数。
边界:\(f_{i,i}=0,f_{i,1}=C_i^2\)。
转移:如果 \(j>1\),那么为了让边数最少,此时的图一定不连通,枚举其中一部分,\(f_{x,y}+f_{i-x,j-y} \to f_{i,j}\)。
这个 dp 是 \(O(n^4)\)。
然后你打个表可以发现最优的情况一定是:\(x=\lfloor \frac{i}{j} \rfloor,y=1\)。
所以就优化成了 \(O(n^2)\)。