https://www.nowcoder.com/acm/contest/85#question
所有代码:
https://pan.baidu.com/s/1B0a4CZ6HFev0iwDdtDwBcA
E.
已知∠A、∠B、∠C是△ABC内角,求证:tanA/2 * tanB/2 + tanB/2 * tanC/2 + tanC/2 * tanA/2 = 1
G.
统一公式!
坐标为
0
-1 1
-2 0 -2
-3 -1 1 3
……
三个阶段
1 #include
2 #include
3 #include
4 #include
5 #include <string>
6 #include <set>
7 #include
I.
已知一个没有深度限制的栈的入栈序列为 ,且 不能第一个出栈。求合法的出栈序列个数。答案对 取模。
首先,我们设f(n)=序列个数为n的出栈序列种数。(我们假定,最后出栈的元素为k,显然,k取不同值时的情况是相互独立的,也就是求出每种k最后出栈的情况数后可用加法原则,由于k最后出栈,因此,在k入栈之前,比k小的值均出栈,此处情况有f(k-1)种,而之后比k大的值入栈,且都在k之前出栈,因此有f(n-k)种方式,由于比k小和比k大的值入栈出栈情况是相互独立的,此处可用乘法原则,f(n-k)*f(k-1)种,求和便是Catalan递归式。
考虑卡特兰数,H(n) 表示n 个数的合法出栈序列个数。而本题中第一个元素不能第一个出
栈,所以应当减掉第一个元素出栈的方案数。可以发现若第一个元素先出栈,那么剩下的元素依
然可以构成一个n ? 1 个元素的入栈序列,所以第一个元素出栈的方案数就等于n ? 1 个元素合
法出栈序列的数量。所以答案为H(n) - H(n - 1) 。
卡特兰数
F(n)->F(n+1)的方法。
//https://baike.baidu.com/item/%E5%8D%A1%E7%89%B9%E5%85%B0%E6%95%B0/6125746?fr=aladdin
#include
#include
#include
#include
#include <string>
#include <set>
#include