B ことりと風船
トピックへのリンク:https://ac.nowcoder.com/acm/contest/940/B
タイトル説明
ことりは最近、愛のスイングバルーンゲームに落ちました。彼女は、各バルーン数多くの風船のn種類の合計があります。彼女は、行の風船の数を思い付く置きます。
同じ種類の隣接する二つのバルーンは正当とみなされていないので、もし隣接するが、爆発する場合は、バルーンので、バルーンの同じタイプ、魔法キャストしました。
ことりは、メートルの行を入れて、どのように多くの異なるプログラムの合計を知りたいですか?
この数が大きすぎる可能性がありますので、あなたは出力モジュロ109の結果だけにする必要があります。
説明を入力します。
入力のみ一列、二つの整数n及びm(1≤n、m≤100)
出力説明:
出力整数、結果はプログラム109を法とする数です。
例1
エントリー
3 2
輸出
6
説明
[1,2]、[1,3]、[2,1]、[2,3]、[3,1]、[3,2]:標識1,2,3バルーンの三種類は、以下のスキーム6種類の合計を考えます。
アイデア:
最初のオプションは、後に可能である第3の可能なN-1を選択し、第2のn-1の可能を選択し、可能なn個有し、N-1
、N×(N-1)のようにプログラムの数*(N-1)*···
#include <ビット/ STDC ++ H> 使用して 名前空間STDを、 typedefの長い 長いLL。 LL MAXN = 109 。 LL傑(LLのM、N LL) { LLの結果1 = 1 。 以下のために(int型 iは= 0 ; iは<M- 1、I ++ ) { 結果1 * =(N- 1 )。 結果1 =結果1%MAXN。 } 戻り N *結果1%MAXN。 } int型のmain() { LL N、M。 同時に(CIN >> N >> M) { COUT <<潔(N、M)%のMAXN << ENDL。 } 戻り 0 。 }