• P1641-[SCOI2010]生成字符串


     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 typedef double db;
     5 #define INF 0x3f3f3f3f
     6 #define _for(i,a,b) for(int i = (a);i < b;i ++)
     7 #define _rep(i,a,b) for(int i = (a);i > b;i --)
     8 #define mod 20100403
     9 
    10 inline ll read()
    11 {
    12     ll ans = 0;
    13     char ch = getchar(), last = ' ';
    14     while(!isdigit(ch)) last = ch, ch = getchar();
    15     while(isdigit(ch)) ans = (ans << 1) + (ans << 3) + ch - '0', ch = getchar();
    16     if(last == '-') ans = -ans;
    17     return ans;
    18 }
    19 inline void write(ll x)
    20 {
    21     if(x < 0) x = -x, putchar('-');
    22     if(x >= 10) write(x / 10);
    23     putchar(x % 10 + '0');
    24 }
    25 ll exgcd(ll a,ll b,ll &x,ll &y)
    26 {
    27     if(b==0)
    28     {
    29         x=1,y=0;
    30         return a;
    31     }
    32     ll res=exgcd(b,a%b,y,x);
    33     y-=a/b*x;
    34     return res;
    35 }
    36 
    37 ll Inv(ll a)
    38 {
    39     ll d,x,y;
    40     d=exgcd(a,mod,x,y);
    41     if(d==1)
    42       return (x%mod+mod)%mod;
    43     return -1;
    44 } 
    45 
    46 ll C(ll n,ll m)
    47 {
    48     ll ans1=1,ans2=1;
    49     for(int i=n,j=1;j<=m;j++,i--)
    50     {
    51         ans1=ans1*i%mod;
    52         ans2=ans2*j%mod;
    53     }
    54     return (ll)(ans1*Inv(ans2)%mod);
    55 } 
    56 ll N,M;
    57 int main()
    58 {
    59     N = read();
    60     M = read();
    61     ll a = C(N+M,M);
    62     ll b = C(N+M,M-1);
    63     printf("%lld
    ",(a-b+mod)%mod);
    64     return 0;
    65 }
  • 相关阅读:
    【Demo 0011】多媒体播放器
    【Demo 0010】事件响应链
    【Demo 0009】表视图控制器
    【Demo 0008】标签控制器
    【Demo 0007】导航控制器
    【Demo 0006】iOS常用控件
    【Demo 0005】视图控制器
    【Demo 0004】屏幕、窗体及视图基础知识
    2019.7.16考试反思
    内网 可怜与超市题解 树形dp+合并
  • 原文地址:https://www.cnblogs.com/Asurudo/p/11475158.html
Copyright © 2020-2023  润新知