レポートの問題解決:luogu P2822

トピックリンク:いくつかの問題のP2822の組み合わせは、 
それが、我々だけ**のような、このある再帰**(パスカルの三角形)の数との組み合わせを必要とする二次元のプレフィックスと水です:
$$ C_N ^ = C_ {N-M-1} ^ M + C_ {N-1 } ^ {M-1} $$
のような、フィルムのエッジは、再帰的側面を取るために、メンテナンスの数は、二次元の接頭辞であることができます。
(私は私が間違っサイクル境界$ WA $ $ N $倍だったあなたを教えてくれません
$コード$:

書式#include <iostreamの> 
の#include <cstdioを> 
する#include <cmath>
 使用して 名前空間をSTD。
長い 長い F [ 2005 ] [ 2005 ]、和[ 2005 ] [ 2005 ]。
長い 長い CH [ 2005 ] [ 2005 ]、CS [ 2005 ] [ 2005 ]。
int型、T、N、M、K。
int型のmain()
{ 
    // freopenは( "data.in"、 "R"、STDIN)。
    // freopenは( "baoli.out"、 "W"、STDOUT)。
    scanf関数(" %D%D "、&​​T、&K)。
    INT iは= 0 ; I <= 2001 ; I ++ 
    { 
        F [i]が[ 0 ] = 1 ; 
        CH [i]が[ 0 ] = 0 ; 
        CH [ 0 ] [I] = 0 ; 
        CS [ 0 ] [I] = 0 ; 
        CS [ 0 ] [I] = 0 ; 
        和[I] [ 0 ] = 0 ; 
        和[ 0 ] [I] = 0 ; 
    } 
    のためのINT I =1 ; I <= 2001 ; I ++ 
    { 
        ためINT J = 1 ; J <= I; J ++ 
        { 
            F [I] [J] =(F [I- 1 ] [J] + F [I- 1 ] [J- 1 ])%K。
        } 
    } 
    のためにINT iが= 1 ; I <= 2001 ; I ++ 
    { 
        ためINT J = 1 ; J <= I; J ++ 
        { 
            場合(F [I] [J] == 0)F [i]は[ J] = 1 他に F [i]は[J] = 0 ; 
        } 
    } 
    のためには、INTは私= 1 ; I <= 2001 ; I ++ 
    { 
        ためINT J = 1 ; J <= I; J ++ 
        { 
            CH [I] [J] = CH [I]、[J- 1 ] + F [i]は[J]。
        } 
    } 
    のためにINT iが= 1 ; I <= 2001 ; I ++ 
    { 
        ためINT J = I; J <= 2001 ; J ++  
        {
            CS [J] [I] = CS [J- 1 ] [I] + F [j] [i]は、
        } 
    } 
    のためにINT iが= 1 ; I <= 2001 ; I ++ 
    { 
        ためINT J = 1 ; J <= I; J ++ 
        { 
            和[I] [J] =和[I- 1 ] [J- 1 ] + CS [I] [J] + CH [I] [J] - F [I] [J]。
        } 
    } 
    一方(t-- 
    { 
        scanf関数(" %D%D "、&​​N、&M)。
        もし(nは==0 || M == 0)COUT << 0 << ENDL。
        のprintf(" %がLLD \ n " 、和[N] [分(N、M)])。
    } 
    戻り 0 
} 
/ * 1 12 
1962年1183 * /
私は、コード・スタンプを見て

 

おすすめ

転載: www.cnblogs.com/tlx-blog/p/12498856.html