我的意思是“大n”是百万分之一。 p是素数。 我试过http://apps.topcoder.com/wiki/display/tc/SRM+467但function似乎是不正确的(我testing了144select6模5,它给了我0当它应该给我2) 我已经尝试http://online-judge.uva.es/board/viewtopic.php?f=22&t=42690但我完全不明白 我也做了一个使用逻辑(组合(n-1,k-1,p)%p +组合(n-1,k,p)%p)的recursion函数,但是它给了我堆栈溢出的问题, n很大 我已经尝试过卢卡斯定理,但它似乎是缓慢或不准确的。 我所要做的就是创build一个快速/准确的nselectk mod p为大n。 如果有人能够帮助我展示一个很好的实现,我将非常感激。 谢谢。 根据要求,堆栈溢出的memoized版本溢出大n: std::map<std::pair<long long, long long>, long long> memo; long long combinations(long long n, long long k, long long p){ if (n < k) return 0; if (0 == n) return 0; if (0 == k) return 1; if (n == k) return […]