模拟83 题解
A. 最大异或和
异或是不进位加法。
具有一个很好的性质:$a\ xor\ b=c$ $\rightarrow$ $c\ xor\ b=a$
若所有点的异或和为$0$,那么显然平手。
若异或和不为$0$,先手只要将最高位的$1$选到必胜。
B. 简单的括号序列
考虑暴力做这道题。
那么枚举最后一个必选的左括号的位置,枚举括号的个数。
预处理出左侧的左括号个数$lcnt_i$,右侧的右括号个数$rcnt_i$
那么答案为$\sum \limits_{i=1}^{n} \sum \limits_{j=1}\binom{lcnt_i-1}{j-1}\binom{rcnt_{i+1}}{j}$。
发现这个式子似乎有一丝像卷积式,然而是反着卷的。
然而组合数可以直接把反向的卷积变为正向,于是可以将$n$个组合数相乘求和转化为单个组合数。
C. 旅行计划
对于$k$比较小的情况,可以通过预处理暴力跑。
对于询问比较少的情况,可以倍增$floyd$(或者理解为$min-add$矩阵快速幂)。
然而除去特殊性质就没办法了。
或许想到了倍增,然而只要带$qn^2$必死,根本无法进行倍增的多次拼凑。
所以正解是分块,避免了多次拼凑。
只要处理出$100*k$ $1<=k<=100$步,由$i$到$j$的最优解。
至少$k$步,由$i$到$j$的最优解。
所以可以一步拼凑,做到$O(nq)$。