サマースクールキャンプオフ以上の2019頭の牛(第2フィールド)

A.Eddyウォーカー

質問の意味:、右または左にステップによるランダムウォークのステップをするたびに長さのサークルを与えるn(nは合計ポイント(0〜N-1)、環を形成するために)、あなたは最終的にはすべてのポイントを尋ねます少なくとも一度歩いた、ハンドオーバ確率Mの最後のステップは、ポイントの数です。

この問題は理解同じ記事を読んだように、あなたはあなたがn-1に転倒0を発見する確率を理解するでしょう、少数の人々が読むことができる、主に対象となるサンプルの同じ、Tセット、あるたびに確率は、前の確率を掛け、しなければならないと最終的には特殊な文を追加することを忘れないでください

書式#include <iostreamの> 
の#include <cstdioを>
 使用して 名前空間はstdを、
typedefの長い 長いLL。
 
const  int型 MOD = 1E9 + 7 
LL N、M、ANS。

LLのmod_pow(LLのX、LL N)
{ 
    LL RES = 1 一方、(N> 0 ){
         場合(N - 1 * X%)のRES =の解像度MOD。
        X = X * X%MOD。
        N >> = 1 
    } 
    戻りRESと、
} 
 
int型)(主
{
    int型のトン。
    scanf関数(" %のD "、&T)。
     
    ANS = 1 一方、(t-- ){ 
        scanf関数(" %D%dの"、&​​N、&M)。
        もし(N == 1 && m個の== 0)* ANS = 1 他の 場合(Mは== 0)ANS * = 0  ANS =(ANS * mod_pow(N- 1、mod- 2))%MOD。   
        printf(" %のLLDする\ n " 、ANS)。
    }
    戻り 0 
}
コードの表示

 

おすすめ

転載: www.cnblogs.com/wizarderror/p/11226316.html