1656:コンビネーション

コンビネーション:1656年を通じて、

1656:コンビネーション


制限時間:1000ミリ秒のメモリ制限:524288キロバイト
の提出:数によって89:49

 

説明[タイトル]

 

BZOJ 2982:オリジナルタイトルから

 

LMZは持っているn個

異なる選択する友人のグループ、彼毎晩メートルの [カニ]についてaは、だけでなく、毎晩同じではないの選択が必要です。それでは、どのように多くのそのような夜LMZはそれを続けることができますか?もちろん、LMZ年10007日、彼は答えを知りたいと思ったMOD 10007

値。

 

[Enter]を

 

最初の行の整数T

、発現トン

データのセット。

 

トン

二行の各整数N- M

このような質問の意味として。

 

[出力]

 

トン

行、行あたり、であるN- M MOD 10007

回答。

 

[サンプル入力]

 

4 
5 1 
5 2 
7 3 
4 2

 

[サンプル出力]

 

5 
10 
35 
6

 

[注]

 

データ範囲とヒント:

 

すべてのデータのために、1 T 200は1 M N- 2 × 10 8

 

この質問は、それ自体が神♂奇数タイトルである金以外の何ものでもありません

 

#include <ビット/ STDC ++ H>
 の#defineは長い長いllの
 使用 名前空間STDを、
constの LL MOD = 10007 ; 
インラインint型リード()
{ 
    int型のx = 0、F = 1 チャー CH = GETCHAR()。
    一方、(CH < ' 0 ' || CH> ' 9 '){ 場合(CH == ' - ')、F = - 1 ; CH = GETCHAR();}
     一方(CH> = ' 0 ' && CH <= '9 '){X = X * 10 + CH- ' 0 ' ; CH = GETCHAR();}
     戻りのx *のF。
} 
(LLのB LL)インラインLLパワー
{ 
    LL RES = 1 一方、(b)は、
    { 
        もし、(B&1)RES =のRES *%のMOD。= A *%モッズ; B >> = 1 
    } 
    戻りRESと、
} 
インラインのLL C(LL N、LLのM)
{ 
    LL N0 = 1、M0 = 1 (LL I = N-M + 1 ; iが<= N; I ++)はN0 = N0 * I%MOD。
    (LL I = 1 ; I <= M; iは++)M0 = M0 * I%MOD。
    戻り N0 *パワーを(M0、mod- 2)%MOD。
} 
インラインLLルーカス(LL N、LLのM)
{ 
    場合(M == 0リターン 1 戻り C(N%のMOD、m個%のMOD)*ルーカス(N / MOD、M / MOD)%MOD。
} 
int型のmain()
{ 
    int型のT。
    T = 読み取ります(); 
    LL N、M。
    一方、(t-- 
    { 
        N = (LL)を読み出します(); 
        M = (LL)を読み出します(); 
        printf(" %LLDする\ n " 、ルーカス(N、M))。
    } 
    戻り 0 
}

 

おすすめ

転載: www.cnblogs.com/smartljy/p/11418627.html