我解决的:E、I、F。
没看的:C、H。
旁观的:G、M、B、D、L、K。
看了但没做出来的:A、J。
E Eggfruit Cake
简单题,略。
I Improve SPAM
简单拓扑排序,略。
M Mountain Ranges
简单题,略。
K Know your Aliens
简单构造题,略。
F Fabricating Sculptures
题意:给定 S , B ( B ≥ S ) S, B(B \ge S) S,B(B≥S),求出所有“单峰拆分”的方案数。单峰拆分即将 B B B 拆分成 S S S 个正整数 { a i } \left\lbrace a_i\right\rbrace { ai},且 ∃ t ∈ [ 1 , S ] \exists t \in [1, S] ∃t∈[1,S],使得 a 1 a_1 a1 到 a t a_t at 不降, a t a_t at 到 a S a_S aS 不增。 B , S ≤ 5000 B, S \le 5000 B,S≤5000。
设 f ( i , j ) f(i, j) f(i,j) 为将 j j j 拆分成 i i i 个数的“单峰拆分”的方案数。
对于 i < j i < j i<j,显然 f ( i , j ) = 0 f(i, j) = 0 f(i,j)=0。
对于 i = j i = j i=j,那么 f ( i , j ) = 1 f(i, j)=1 f(i,j)=1。
对于 j > i j>i j>i,考虑将每一个数都减去 1,然后看看剩余的非 0 数有多少。于是
f ( i , j ) = ∑ 1 ≤ k ≤ i ( i − k + 1 ) f ( k , j − i ) f(i, j) = \sum_{1 \le k \le i} (i-k+1) f(k, j - i) f(i,j)=1≤k≤i