A - 没有兄弟的舞会
首先按照不能选兄弟选一次,最后把一个没有选过的点选上就行了。
可以证明这样的贪心策略是正确的。
B - 序列期望
考虑枚举最大值,最大值 (h) 的范围是 ([max{l_i},max{r_i}])。
然后对于每个数,它能选的范围就是 ([l_i, min{r_i, h}]),它对答案的贡献就是 (sumlimits_{i=l_i}^{min{r_i, h}}i)。
然而我们这样求出的答案是最大值 (ge h) 的,因此还需要减去 (h-1) 时整个序列的答案。
C - 带劲的and和
我们发现,只有在同一个连通块中的两个节点 (i) 和 (j),(f(i,j)) 才等于 (1)。
因此我们对于每个连通块单独计算答案。
看到位运算,首先想到按位处理。
对于每个连通块中的 (v) 值排序,从小到大依次枚举,计算它对答案的贡献即可。
D - 公共子序列
咕咕咕
E - 棋盘上的旅行
对于每一种颜色,每次重新 rand 一个 ([0,k-1]) 之间的标号,然后进行一次状压 DP。
设 (dp_{i,j,s}) 表示走到 ((i,j)) 时颜色状态为 (s) 所需的最少步数。
BFS 即可。
把随机种子设为 19260817,跑 500 次即可 AC。
F - 带劲的多项式
咕咕咕