一道编程题,无从下手...
一直一个数N,它能够表示为小于它的至少两个大于等于1的数的和,这些数是按升序排列的,如:3可以表示为:3=1+2
5可以表示为:5=1+4
5=2+3
6可以表示为:6=1+2+3
6=1+5
6=2+4
所表示的升序中的每两个数是不能相等的,
编程解决:
给一个数N,编程给出N按上述方法表示,有多少种不同的升序排列?
组合相加
例如
N=5
那么求
P(5,1)/1!+P(5,2)/2!+P(5,3)/3!+P(5,4)/4!+P(5,5)/5!
好象就是这个,我还没有学过组合数学(学历问题...),所以写的不确定是否完全正确,不过我记的是这样
呵呵 谢谢拉 我数学系的 可惜我连组合是什么都忘了
惭愧嘿...
也就是DFS了,如果数据规模较大,肯定超时,所以还是用DP吧,如果楼主有兴趣,可以看看NOIP2001复赛提高组的第二题的标程或解题报告