T1
题目描述
阿米巴和小强是好朋友。
阿米巴和小强在大海旁边看海水的波涛。小强第一次面对如此汹涌的海潮,他兴奋地叫个不停。而阿米巴则很淡定,他回想起曾经的那些日子,事业的起伏,情感的挫折……总之今天的风浪和曾经经历的那些风雨比起来,简直什么都不算。
于是,这对好朋友不可避免地产生了分歧。为了论证自己的观点,小强建立了一个模型。他海面抽象成一个到的排列。定义波动强度等于相邻两项的差的绝对值的和,即:
给你一个和,问:随机一个的排列,它的波动强度不小于的概率有多大?
答案请保留小数点后位输出,四舍五入。
【数据规模】 对于30%的数据,N ≤ 10。
对于另外30%的数据,K ≤ 3。
对于另外30%的数据,K ≤ 8。
对于另外10%的数据,N ≤ 50。
对于100%的数据,N ≤ 100,K ≤ 30,0 ≤ M ≤ 2147483647。
30分做法
由于K比较小,可以用随机化求概率,如枚举一百万个排列并计算。
正解
数学课上,我们学到概率=
显然,总方案数为
那么,可行方案数怎么求呢?
考虑每个排列对总排列的贡献,可以拆分成, 其中是的贡献,,可以取到,如果不考虑边界的话,只会取到这三个数。
从大到小插入数字,用f[i][j][k]表示考虑前i大的数字,这i个数字在最后的排列中是连续的j段,这i个数字对L的贡献为k,的方案数
那么,怎么进行转移呢?
我们可以看出,序列分为不连续的几段
接下来,我们要把这个元素(值为n-i)的值插入进去.
有三种情况
第一种,连接了两个
分别是三种不同的情况: (半圆的直径为1)
- 连接两段
- 另起炉灶
- 依附于一段
分别更新即可。
对于这总方法,我们形象地称之为填坑DP
T2

分类讨论
当k = 0时,只有一种:

当k = 1时,只有


两种
当k = 2时,除上面的两种外,还有



三种。
这些都很简单。
但是, 时就不简单了, 需要使用动态规划解决问题。
第一步,设计状态。
设为所有只包含前个数,方向为j(需要方向判断,因为“不喜欢”是单向的),
这三个数的状态为k (这一维大小2^6)

状态转移
仅当i于i-1之间,且i于i-1中间的两个空隙都没有填数的时候,i可以另起炉灶
其他同上题
T3坑
T4坑
T5坑
T6坑
T7坑
T8坑
T9坑
T10坑