【解题总结】Latin American Regional Contest 2019(Codeforces Gym 102428)

我解决的: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(BS),求出所有“单峰拆分”的方案数。单峰拆分即将 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,S5000

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)=1ki

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值