HDU 4372 Count the Buildings】的更多相关文章

Count the Buildings Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2521    Accepted Submission(s): 817 Problem Description There are N buildings standing in a straight line in the City, numbere…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4372 题意: 有n栋高楼横着排成一排,各自的高度为1到n的一个排列. 从左边看可以看到f栋楼,从右边看可以看到b栋楼,并且高的楼会挡住低的楼. 问你这些楼有多少种排列方法. 题解: 由于高的楼会挡住低的楼,所以这些楼首先会被划分成f+b-2个区域(除去中间最高的楼),并且左边有f-1个,右边有b-1个. 对于一个区域(假设在左边),这个区域由若干栋楼组成,并且最高的楼一定在最左边. 那么,由一个区域…
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4372 首先,最高的会被看见: 然后考虑剩下 \( x+y-2 \) 个被看见的,每个带了一群被它挡住的楼,其实方案数是圆排列,每个圆从最高的楼开始断掉都是不同的方案: 再把这 \( x+y-2 \) 个圆排列分成两组放左右两边,它们按最高楼的高度就自动有顺序了,不必再算: \( s[i][j] \) 表示第一类斯特林数,答案就是 \( s[n-1][x+y-2] * C_{x+y-2}^{x-1} \)…
有n(<=2000)栋楼排成一排,高度恰好是1至n且两两不同.现在从左侧看能看到f栋,从右边看能看到b栋,问有多少种可能方案. T组数据, (T<=100000) 自己只想出了用DP搞 发现最高的楼一定能看到,分成了左右两个问题 f[i][j]表示i栋楼从左面可以看到j栋方案数,转移枚举最高楼左面有几栋楼,乘上个组合数和剩下的排列 问题是DP完了求ans需要O(n)枚举最高楼在哪........ 然后发现好多人用了第一类sirtling数 考虑一栋被看到的楼,它会挡住它右面的几栋楼,这几栋楼可…
题目大意:n幢楼,从左边能看见f幢楼,右边能看见b幢楼 楼高是1~n的排列. 问楼的可能情况 把握看到楼的本质! 最高的一定能看见! 计数问题要向组合数学或者dp靠拢.但是这个题询问又很多,难以dp 如果把能看见的和之后挡住的看成一组的话... 那么可以看成这样: 每一组要固定第一个,,后面可以随便动,n!/n=(n-1)! 第一类斯特林数圆排列! 可分成的组数是:S[n-1][f+b-2](扣除中间最高的) 每一个圆排列只有最大值靠前的唯一展开方式 所以方案数是S[n-1][f+b-2]*C(…
首先想过n^3的组合方法,即f(i,j,k)=f(i-1,j,k)*(i-2)+f(i-1,j-1,k)+f(i-1,j,k-1),肯定搞不定 然后想了好久没有效果,就去逛大神博客了,结果发现需要用到第一类stirling数 第一类stirling数S(n,m)表示的是n个数排成m个非空环排列的数目 每个环排列中必然有一个是可以看见的,然后再对这m个环求组合数 不难理解,但是很难想到 #include <stdio.h> #include <string.h> #define mo…
题目大意 n栋楼有n个不同的高度 现在限制从前面看有F个点,后面看有B个点 分析 最高那栋楼哪都可以看到 剩下的可以最高那栋楼前面分出F-1个组 后面分出B-1个组 每个组的权值定义为组内最高楼的高度 那么\(\binom {F+B-2}{F-1}\)分好组后,组和组之间的顺序是唯一确定的 而且要满足最高楼前面的组,每组最高楼在最左(不然最高楼左边的组内成员能被看到) 在最高楼后面的组同理 确定好每组最高楼后,剩下的楼可以任意排序 又有这样一个结论: (n-1)个点的排列数=n个点的轮换数 那就…
题意:有n个点上可能有楼房,从前面可以看到x栋楼,从后面可以看到y栋,问楼的位置有多少种可能. 印象中好像做过这个题,…
Count the Buildings Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1249    Accepted Submission(s): 408 Problem Description There are N buildings standing in a straight line in the City, numbere…
[Hdu4372] Count the Buildings Description There are N buildings standing in a straight line in the City, numbered from 1 to N. The heights of all the buildings are distinct and between 1 and N. You can see F buildings when you standing in front of th…