题目链接:http://poj.org/problem?id=3252
解题思路:
怎么做我就不详细说了,统计半开半闭区间(0,n】所有Round Number的个数,枚举所有可能的情况,组合数相加(之前要打表),注重问题的分析过程。
比较好的解题报告:
(1)小優YoU: http://blog.csdn.net/lyy289065406/article/details/6648458
(2)kuangbin:http://www.cnblogs.com/kuangbin/archive/2012/08/22/2651730.html
(3)discuss: http://hi.baidu.com/ycdoit/item/6f64473c54a88f607d034b7f
有几个问题并没有解决,还望高人指点:
(1)组合数int c[34][34]能过,long long c[34][34]过不了,我打表比较过,值都是相同的,不存在越界问题,对组合数的处理也仅仅是累加,不知道为什么过不了
(2)还是组合数的问题,c[0][0]=1是为了打表,理论上应该是c[0][0]=0,大家有没有注意到,你在计数的过程中累加了c[0][0],(换句话说,当你考虑长度=1时的Round Number时,累加了c[]0[0]),我测试了几组数据,部分结果会和AC结果相差1.我觉得要么不考虑长度=1的情况,要么再打表结束时赋值c[]0[0]=0,这样做才是标准答案,也有可能我没有想的更加深入,浮于表面,但至少对我来说还是个问题。以后慢慢思考……
参考代码+部分解释:
#include
#include
#include
#include