P4609 [FJOI2016]建筑师】的更多相关文章

考虑转化题意,我们发现其实就是找一个长度为\(n\)的全排列,使得这个排列有\(A\)个前缀最大值,\(B\)个后缀最大值,求方案数 我们考虑把最大值拎出来单独考虑,同时定义一些数的顺序排列为单调块(随便取的名字) 考虑在这个最大值左边有\(A-1\)个单调块,右边有\(B-1\)个单调块,如果这些块在左右两边按序排好的话就是一种合法方案 那我们只需要找出\(A+B-2\)个单调块,并且将其中拿出\(A-1\)个放在左边,因此答案有一项就是\(C_{A+B-2}^{A-1}\) 考虑怎么从除了最…
洛谷题目链接:[FJOI2016]建筑师 题目描述 小 Z 是一个很有名的建筑师,有一天他接到了一个很奇怪的任务:在数轴上建 \(n\) 个建筑,每个建筑的高度是 \(1\) 到 \(n\) 之间的一个整数. 小 Z 有很严重的强迫症,他不喜欢有两个建筑的高度相同.另外小 Z 觉得如果从最左边(所有建筑都在右边)看能看到 \(A\) 个建筑,从最右边(所有建筑都在左边)看能看到 \(B\) 个建筑,这样的建筑群有着独特的美感.现在,小 Z 想知道满足上述所有条件的建筑方案有多少种? 如果建筑 \…
本省省选题是需要做的. 题目传送门:洛谷P4609. 题意简述: 求有多少个 \(1\) 到 \(N\) 的排列,满足比之前的所有数都大的数正好有 \(A\) 个,比之后的所有数都大的数正好有 \(B\) 个. 答案对 \(mod=10^9+7\) 取模. 有 \(T\) 组数据. 题解: 考虑最大的元素 \(N\) ,它把序列分成两部分. 考虑左边的一部分,它满足比之前所有数都大的数正好有 \(A-1\) 个,右边同理. 把每个比之前所有数都大的数和其右边比它小的连续一段的数分为一组,则左边有…
题目链接 洛谷P4609 题解 感性理解一下: 一神带\(n\)坑 所以我们只需将除了\(n\)外的\(n - 1\)个元素分成\(A + B - 2\)个集合,每个集合选出最大的在一端,剩余进行排列,然后选出\(A - 1\)个集合放左边,剩余放右边 容易发现分割集合并内部排列实质对应第一类斯特林数\[\begin{bmatrix} n - 1 \\ A + B - 2 \end{bmatrix}\] 所以答案就是 \[\begin{bmatrix} n - 1 \\ A + B - 2 \e…
思路 裸的第一类斯特林数,思路和CF960G相同 预处理组合数和第一类斯特林数回答即可 代码 #include <cstdio> #include <cstring> #include <algorithm> #define int long long using namespace std; const long long MOD= 1e9+7; long long jc[300],inv[300],n,a,b,S_[50100][210]; long long po…
题面 洛谷 题解 (图片来源于网络,侵删) 以最高的柱子\(n\)为分界线,我们将左边的一个柱子和它右边的省略号看作一个圆排列,右边的一个柱子和它左边的省略号看作一个圆排列,于是,除了中间的最高的柱子,我们可以把剩下的\(n-1\)根柱子放入这\(A+B-2\)(左边\(A-1\)个右边\(B-1\)个)个圆排列中(第一类斯特林数),然后在根据组合数进行区分,有: \[ ans=s_{n-1}^{A+B-2}\times C_{A+B-2}^{A-1} \] 预处理第一类斯特林和组合数即可. #…
传送门 没想到连黑题都会有双倍经验的 其实这题本质上是和CF960G Bandit Blues一样的,不过那里是要用分治FFT预处理第一类斯特林数,这里直接打表预处理第一类斯特林数就可以了 //minamoto #include<bits/stdc++.h> #define R register #define fp(i,a,b) for(R int i=a,I=b+1;i<I;++i) #define fd(i,a,b) for(R int i=a,I=b-1;i>I;--i)…
传送门 解题思路 好神仙的思路,首先一种排列中按照最高点将左右分开,那么就是要在左边选出\(a-1\)个,右边选出\(b-1\)一个,这个如何计算呢?考虑第一类斯特林数,第一类斯特林数是将\(n\)个数分成\(m\)个圆排列的方案数,在这道题中,假如划分成圆排列之后,将圆排列从最大值处断开可以造成\(1\)的贡献.那么答案就为\(s(n-1,a+b-2)*C(a+b-2,a-1)\). 代码 #include<iostream> #include<cstdio> #include&…
[LG4609][FJOI2016]建筑师 题面 洛谷 题解 (图片来源于网络) 我们将每个柱子和他右边的省略号看作一个集合 则图中共有\(a+b-2\)个集合 而原来的元素中有\(n-1\)个(除去最后一个) 考虑第一类斯特林数的意义: 从\(n\)个元素选出\(m\)个有序圆圈的方案数 我们将圆圈从中间最大处剪开则可以满足要求 则我们有\(s(n-1,a+b-2)\)种选法 因为要保证从左看有\(a\)个 所以要乘上\(C(a+b-2,a-1)\) \[ \therefore Ans=C(a…
题目描述 小 Z 是一个很有名的建筑师,有一天他接到了一个很奇怪的任务:在数轴上建 n 个建筑,每个建筑的高度是 1 到 n 之间的一个整数. 小 Z 有很严重的强迫症,他不喜欢有两个建筑的高度相同.另外小 Z 觉得如果从最左边(所有建筑都在右边)看能看到 A个建筑,从最右边(所有建筑都在左边)看能看到 B 个建筑,这样的建筑群有着独特的美感.现在,小 Z 想知道满足上述所有条件的建筑方案有多少种? 如果建筑 i的左(右)边没有任何建造比它高,则建筑 i可以从左(右)边看到.两种方案不同,当且仅…