P4981の父と息子ケーリー式

オリジナルリンク: http://www.cnblogs.com/Willems/p/11016727.html


ケーリーのC A Y L E 式は、のためのものであるY定義N個の異なるノードは、無根木で構成することができる(元のツリー接続グラフないか、または符号ノードである)種の数であるN(^ N -2)種。(ここでは、こんにちは、誰もがそれは実際には、同じ概念である必要があり、根なしツリーで書かれていることを理解してみましょう)

 

だから、私たちの最初の問題が解決され、次のステップは、無根の木と根とツリーの間の遷移を解決することです。

しかし、それは、変換することは困難ですか?ルートノードとルート付きツリーに変換N- 無根木のnの場合、すなわちN- ^(N - 2)*  n-は、単純化である^ N-(N - 1) 答えは、このようなものをアップしています。

ので、この質問は、N- 大きなので、私たちはすぐに電源にそれを使用しました。

 

書式#include <iostreamの> 
の#include <cstdioを> 
する#include <fstreamの> 
の#include <アルゴリズム> 
書式#include <cmath> 
の#include <両端キュー> 
の#include <ベクトル> 
の#include <キュー> 
の#include < 文字列 > 
の#include <CStringの> 
#include <地図> 
の#include <スタック> 
の#include < 設定 >
 の#define LL長い長
 の#define ULL符号なし長い長
 の#define担当者(I、J、K)のための(iはjは= int型、私は= Kを<; I ++)は
 #define DEP(I、J、
I> = J; i--)は、(i = kはint型用K)#define INF 0x3f3f3f3f
 の#define MEM(i、j)はmemsetの(I、J、はsizeof(I))
 の#defineメイク(i、j)はmake_pair(i、j)の
 の#define PB一back
 使用して 名前空間はstdを、
const  int型 MOD = 1E9 + 9 
LLのKSM(LL、LL b)は{ 
    LL ANS = 1 一方、(b)は、{
         もし、(B&1)ANS = ANS *%のMOD。= A *%のMOD。
        B >> = 1 
    } 
    戻りANS。
} 
int型メイン(){
     int型N、T。
    scanf関数(" %のD "、&T)。
    一方、(t-- ){ 
        scanf関数(" %のD "、&N)
        COUT << KSM(1LL * N、1LL *(N - 1))<< ENDL。
    } 
    戻り 0 
}
コードの表示

 

ます。https://www.cnblogs.com/Willems/p/11016727.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_30662539/article/details/95078834