比赛场次 583
比赛名称 2020级再出发之二进制拆分及运用
比赛状态 已结束比赛成绩
开始时间 2023-07-24 10:00:00
结束时间 2023-07-24 17:00:00
开放分组 全部用户
注释介绍
题目名称 组合数
输入输出 com.in/out
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试点数 10 简单对比
用户 结果 时间 内存 得分
Gravatar┭┮﹏┭┮ AAAAAAAAAA 0.002 s 0.96 MiB 100
Gravatar宇战 AAAWWWWWWW 0.000 s 0.00 MiB 30

组合数

★   输入文件:com.in   输出文件:com.out   简单对比
时间限制:1 s   内存限制:128 MiB
【问题描述】
组合数C(N, K)表示了N个数字不重复地选取K个作组合的方案数。
C(N, K) = N!/(N-M)!M!
当然,在取余数的条件下,由于除法的限制,上述公式求C(N, K) mod H不方便,并且高精度除法也不容易写,所以一般情况下我们采取的是下列方法。
若N,K不大,可以通过递推的方法求出所有组合数。
首先,N个数取0个数显然只有1种方案,那就是什么都不取;
接着,N个数取N个数的组合显然也只有1种方案。
所以C(N, 0) = 1,C(N, N) = 1
其他情况下,C(N, K) = C(N - 1, K) + C(N – 1, K – 1),这样就可以通过递推求出所有组合数。
你可以看到,其实结果其实就是杨辉三角形。

现在对于给定的N和K,请输出C(N, K) mod 100003。

【输入】

输入文件com.in共1行。
第1行为两个非负整数N,K。

【输出】
输出文件com.out共一行。
包括1个非负整数。
【输入输出样例】
com.in       com.out 
4 2               6
【数据范围】
对于40%的数据,N≤50
对于100%的数据,N≤1000,K≤1000。