考虑特殊元素,高度为\(n\)的建筑,将其当做分水岭;再对于一种特定的方案划分成若干个集合,以每个被看到的建筑作为集合划分的标准(并且将这个建筑作为集合的代表元素)
比如说,现在建筑群的高度从左到右依次是\(3 2 5 4 1\),那么就会划分出两个集合\(\left\{ 3\space 2 \right\},\left\{ 4\space 1\right\}\),其中代表元素分别是\(3,1\)
于是可以知道,分水岭左边会被划分出\(A-1\)个部分,右边会被划分出\(B-1\)个部分,而每个部分内部,选出最高的建筑当做代表元素,剩下的建筑随便排列,假设这个部分有\(k\)个元素,那么对于这个部分的方案数就是\((k-1)!\),两者组合在一起会发现刚好是第一类斯特林数的递推公式;然后我们将划分好的\(A+B-2\)个组,选出\(A-1\)个组放左边,剩下放右边,这是组合数问题;对于左边或者右边,显然只有从小到大排序,于是方案数为\(1\);三个部分乘起来就好了
标签:right,元素,划分,建筑师,集合,部分,建筑 From: https://www.cnblogs.com/dingxingdi/p/18353081