A - Cheap Travel (暴力枚举)
思路
直接暴力枚举即可
B - Wonder Room (暴力)
思路
暴力判断其中一个值 最多判断sqrt(n)
C - Number of Ways (前缀和)
思路
首先答案不是3的倍数就肯定无解
然后就是切两刀的位置
第一刀肯定是1/3的位置
第二道肯定是2/3的位置
然后乘法定理一下
D - Increase Sequence (DP)
思路
想了很久
$dp[ans][num]$ 表示位置在ans并且前面还有k个左端点还没匹配完成
对于
$a[i]+num==h$ 那么就说明前面的num个还没匹配到的左端点都可以满足他
所以他可以选择
do nothing $dp[i][j]+=dp[i-1][j]$
或者画一个右括号 $dp[i][j]+=dp[i-1][j] \times j$ 因为这个右端点可以和左边num个左端点任意匹配
如果$a[i]+num==h-1$ 说明前面num个还没有满足i这个点,那么可以肯定的就是他必须要一个左括号!
所以$dp[i][j]+=dp[i][j-1]$
同时他可以不仅仅画一个左括号,他还可以同时作为一个左端点一个右端点
所以$dp[i][j]+=dp[i][j] \times (j+1)$ $j+1$是因为他不仅可以和左边的$j$个左端点匹配还可以和自己(必须贡献)的左括号匹配