摘要:
[题目来源]:USACO 4.4.1[关键字]:数学[题目大意]:一个1*2n+1的棋盘,左边有n个白子,中间一个空格,右边n个黑子,求出将其交换的步骤。//==========================================================================================================[分析]:http://www.nocow.cn/index.php/USACO/shuttle[代码]:View Code 1 { 2 ID:x yr; 3 PROB:shuttle 4 LANG:PASCAL 5 } 6 v. 阅读全文
摘要:
[题目来源]:NOIP基础题目集[关键字]:数学[题目大意]:m个人拿50的去买票,n个人拿100的去买票,问有多少种能使钱找开的方案。//============================================================================================================[分析]:祥见《程序设计中的组合数学》P43页。此时若n = m则为Catalan数。[代码]:View Code 1 type 2 rec = record 3 len: longint; 4 dat: arra... 阅读全文
摘要:
[题目来源]:NOIP基础题目集[关键字]:数学[题目大意]:每个瓶盖上有一个球星的名字,有N个不同的球星,平均情况下,要买多少瓶饮料才能集齐所有名字。//===========================================================================================================[分析]:对于要在剩下的 i 种瓶盖中收集到一种,买一瓶饮料收集到的概率为(i/n),所以平均应该买(n/i)瓶,所以平均总共要买 n(1/1+1/2+1/3+….+1/n)瓶。[代码]:View Code 1 program . 阅读全文
摘要:
[题目来源]:NOIP基础题目集[关键字]:数学[题目大意]:求出n个数的出栈序列数目//===========================================================================================================[分析]:n个数的出栈序列数目就是一颗有n个节点的二叉树的数量。因为他的进栈序列就是该二叉树的先序遍历,而它的出栈序列就是该二叉树的中序遍历,所以两者都等于Catalan数公式为:C(2n,n)/(n+1)。因为当n稍微大一点时结果就会很大,所以要用高精度,为了避免高精除法,可以先将把分子和分母 阅读全文
摘要:
[题目来源]:NOIP基础程序题集[关键字]:数学[题目大意]:给定整数N,将其分解为若干个互不相同的整数,是他们的乘积最大//============================================================================================================[分析]:为了使最后分解的数的乘积最大,首先我们应该确定 n 应该分解为几个数(其实就是 n可以分出的最多个数),确定过程就是从 2开始以步差为 1累加,直到恰好小于 n位置(就是找最大数为k,使 2+3+…+k=t<n,划分成的个数应该为 k+1) 阅读全文