[NOIP模拟赛]排列问题

博客探讨了NOIP模拟赛中的一个排列问题,涉及如何计算满足特定条件的排列对数量。通过动态规划方法,解释了如何处理不同状态的格子,以及在填充数字时对全满和半满组的影响,最终得出解决方案。
摘要由CSDN通过智能技术生成
题目描述
长度为N的排列是一个序列(a1, a2, ..., an),恰好包含从1到N的每一个数字。例如,(3, 1, 4, 5, 2)是一个长度为5的排列。
对于两个排列a和b,定义magic(a, b) = max(a1, b1) + max(a2, b2) + ... + max(an, bn)

给定整数N和K,求有多少对排列a和b 满足a和b的长度都为N,并且magic(a, b) ≥ K。


输入格式

第1行:2个整数N(N≤50)和K(K≤2500)


输出格式

第1行:1个整数,表示答案,答案模1,000,000,007


输入样例

2 4


输出格式

2


样例说明
2个长度为2的排列一共有4种情况:
magic( (1,2), (1,2) ) = 1+2 = 3
magic( (1,2), (2,1) ) = 2+2 = 4
magic( (2,1), (1,2) ) = 2+2 = 4
magic( (2,1), (2,1) ) =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值