求改错

P1358 扑克牌

[评测记录](https://www.luogu.org/recordnew/show/20572870)
by 什么叫中二呀 @ 2019-07-10 19:58:46


动态规划劝退.....
by 那一条变阻器 @ 2019-07-10 20:30:40


可以加一下注释吗?有点看不懂
by 那一条变阻器 @ 2019-07-10 20:32:21


@[812季涛](/space/show?uid=118040)
by 那一条变阻器 @ 2019-07-10 20:37:33


好吧…… ``` #include<cstdio> #define ll long long ll fac[10000]={1},inf[10000]={1},N,t,k,s=1,m=10007; ll C(ll a,ll b){return fac[a]*inf[b]%m*inf[a-b]%m;}//求组合数 ll p(ll a,ll b){return b?(b&1?a:1)*p(a*a%m,b>>1)%m:1;}//快速幂 int main() { for(int i=1;i<10000;i++)fac[i]=fac[i-1]*i%m,inf[i]=p(fac[i],m-2)%m;//预先把i!与其逆元的表打出来 for(scanf("%lld%lld",&N,&t);scanf("%lld",&k)!=EOF;N-=k)s=s*C(N,k)%m;//直接计算 printf("%lld",N<0?0:s); return 0; } ```
by 什么叫中二呀 @ 2019-07-10 20:53:31


我的错误代码: ```cpp #include<cstdio> #define ll long long ll fac[10000]={1},inf[10000]={1},N,t,k,s=1,m=10007; ll C(ll a,ll b){return fac[a]*inf[b]%m*inf[a-b]%m;} ll p(ll a,ll b){return b?(b&1?a:1)*p(a*a%m,b>>1)%m:1;} int main() { for(int i=1;i<10000;i++)fac[i]=fac[i-1]*i%m,inf[i]=p(fac[i],m-2)%m; for(scanf("%lld%lld",&N,&t);scanf("%lld",&k)!=EOF;N-=k)s=s*C(N,k)%m; printf("%lld",N<0?0:s); return 0; } ``` 我的AC代码: ```cpp #include<cstdio> #define ll long long ll fac[10005]={1},inf[10005]={1},N,t,k,s=1,m=10007; ll C(ll a,ll b){return fac[a]*inf[b]%m*inf[a-b]%m;} ll p(ll a,ll b){return b?(b&1?a:1)*p(a*a%m,b>>1)%m:1;} int main() { for(int i=1;i<10005;i++)fac[i]=fac[i-1]*i%m,inf[i]=p(fac[i],m-2)%m; for(scanf("%lld%lld",&N,&t);scanf("%lld",&k)!=EOF;N-=k)s=s*C(N,k)%m; printf("%lld",N<0?0:s); return 0; } ``` 真的是个zz错误
by 什么叫中二呀 @ 2019-07-10 20:58:37


|