• [bzoj2982] combination


      这题面D人D得好狠啊

      求组合数。。模数10007所以lucas一发。。

      求一波逆元算较小的组合数。或者暴力跑也可以

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<cstring>
     4 #include<algorithm>
     5 #define ll long long
     6 using namespace std;
     7 const int modd=10007;
     8 int jc[modd],ny[modd];
     9 int i,j,k,n,m;
    10 bool gg;
    11  
    12 int ra;char rx;
    13 inline int read(){
    14     rx=getchar(),ra=0;
    15     while(rx<'0'||rx>'9')rx=getchar();
    16     while(rx>='0'&&rx<='9')ra*=10,ra+=rx-48,rx=getchar();return ra;
    17 }
    18 inline int poi(int a,int b){
    19     int c=1;
    20     while(b){
    21         if(b&1)c=c*a%modd;
    22         b>>=1,a=a*a%modd;
    23     }return c;
    24 }
    25 inline int getc(int n,int m){
    26     if(n<m)return 0;
    27     return 1LL*jc[n]*ny[m]*ny[n-m]%modd;
    28 }
    29 inline int lucas(int n,int m){
    30     if(n<modd&&m<modd)return getc(n,m);
    31     else return lucas(n/modd,m/modd)*getc(n%modd,m%modd)%modd;
    32 }
    33 int main(){
    34     n=read();
    35     for(i=jc[0]=ny[0]=1;i<modd;i++)jc[i]=jc[i-1]*i%modd,ny[i]=poi(jc[i],modd-2);
    36     while(n--)j=read(),printf("%d
    ",lucas(j,read()));
    37     return 0;
    38 }
    39 
    View Code
  • 相关阅读:
    0223_模拟2011
    0223_模拟2011
    0223_模拟2011
    0223_模拟2011
    12c DG broker DMON自动重启过程分析
    12c DG broker DMON自动重启过程分析
    12c DG broker DMON自动重启过程分析
    12c DG broker DMON自动重启过程分析
    CITA架构设计
    跨链合约示例
  • 原文地址:https://www.cnblogs.com/czllgzmzl/p/5596302.html
Copyright © 2020-2023  润新知