SRM625 缺了名字的题目 [DP]
题目描述
N 个座位的圆桌,K 个人去坐, 任意时刻联通块数量 <=G(人和桌子座位均有序)
求方案数(两个方案数不同当且仅当有一个人的座位不同)
数据范围
N, K, G <=2000
题解
设f[i][j]f[i][j]表示前ii个人构成了个联通块的方案数。
方程(刷表法):
f[i+1][j+1]+=j∗f[i][j]f[i+1][j+1]+=j∗f[i][j],表示第j+1个人单独占一个位置。
f[i+1][j]+=2∗j∗f[i][j]f[i+1][j]+=2∗j∗f[i][j],表示第j+1个人合并到其中一个联通块内,乘以2是因为第j+1个人可以坐在同一个联通块的左右。
f[i+1][j−1]+=j∗f[i][j]f[i+1][j−1]+=j∗f[i][j],表示第j+1个人坐在两个联通块中间的唯一一个位置上,合并了两个联通块。