zoukankan      html  css  js  c++  java
  • P1641 [SCOI2010]生成字符串

    算是个裸题吧。

    c(n+m,n)-c(n+m,n+1) 逆元计算,别忘了取模

     1 #include"bits/stdc++.h"
     2 using namespace std;
     3 typedef long long ll;
     4 
     5 const ll mod = 20100403;
     6 
     7 int n,m;
     8 
     9 ll jc[3000000];
    10 
    11 void exgcd(ll a,ll b,ll &x,ll &y)
    12 {
    13    if(!b)
    14    {
    15         x=1,y=0; 
    16         return ;
    17        }    
    18   exgcd(b,a%b,x,y);
    19   ll t=x;
    20   x=y;
    21   y=t-(a/b)*y;
    22   
    23 }
    24 
    25 ll C(ll n,ll m)
    26 {   ll x,y;
    27    exgcd((jc[m]*jc[n-m])%mod,mod,x,y);
    28     return jc[n]*x%mod;
    29 }
    30 int main()
    31 { 
    32   cin>>n>>m;
    33   jc[1]=1;
    34   for (int i=2;i<=n+m;i++)jc[i]=jc[i-1]*i%mod;
    35   cout<<((C(n+m,n)-C(n+m,n+1))%mod+mod)%mod; 
    36    
    37    
    38 }
    39 
    40 
    41 /*
    42 1
    43 2 2
    44 3 5 5
    45 4 9 14 146
    46 5 14 28 42 42
    47 6 20 48 90 132 132
    48 7 27 75 165 297 429 429
    49 8 35 110 275 572 1001 1430 1430
    50 9 44 154 429 1001 2002 3432 4862 2w62
    51 10 54 208 637 1638 3640 7072 11934 16796 16796
    52 11 65 273 910 2548 6188 13260 25194 41990 58786 58786
    53 12 77 350 1260 3808 9996 23256 48450 90440 149226 208012 208012
    54 13 90 440 1700 5508 15504 38760 87210 177650 326876 534888 742900 742900
    55 14 104 544 2244 7752 23256 62016 149226 326876 653752 1188640 1931540 2674440 2674440
    56 15 119 663 2907 10659 33915 95931 245157 572033 1225785 2414425 4345965 7020405 9694845 9694845
    57 16 135 798 3705 14364 48279 144210 389367 961400 2187185 4601610 8947575 15967980 25662825 35357670 35357670
    58 
    59 
    60 */
  • 相关阅读:
    用户模板和用户场景
    人月神话阅读笔记02
    人月神话阅读笔记01
    软件工程周总结07
    NABCD
    软件工程周总结06
    软件工程周总结05
    tomcat端口被占用
    SQLyog出现2003错
    一维最大子数组和(续)
  • 原文地址:https://www.cnblogs.com/zhangbuang/p/10350516.html
Copyright © 2011-2022 走看看