タイトル:ポータル
質問の意味:Qどのように多くのシーケンスの長さのnは、満たされています:
1、配列の各要素が満たす1 aiを<= aiを<= M
図2に示すように、正確に等しい要素の唯一の対
図3に示すように、インデックスが存在するIように A J < A J + +1、もし J <I、および J > J + 1、もし J ≥ I
アイデア:
長さのシーケンスN、及び等しい数の組を有することが起こり、その後、Nがある - 異なる要素の1人の数が、各要素は1〜Mの間であり、およびC(N - 1、M)が存在することN取るする方法 - 1異なる番号。
借入の種類 - ちょうど等しい要素の対は、(2 n)の等しい数があることが、最大数、他の缶の数に等しくすることができません。
配列満たす合計3 2(N-1)^種の条件からなるN個の異なるn個の長さ。
最大値の両側に確実に同数、他方が最大値は両側にすることができない、数を制限し、互いにN個の異なるなかっ - 2ポジションRuoyi番号も有する位置の数に等しいですOKの。
図3は、2 ^(N - 3)の成立条件であるタイプ、自由空間の両方として、他の確定の数、2つの数値が等しい埋めます。
#include <ビット/ STDC ++ H> の#define LL長い長 の#define MEM(i、j)はmemsetの(I、J、はsizeof(I)) の#define(INTのための担当者(I、J、K)は、iがjを=。 I <= K; I ++) の#define(int型のためのDEP(i、j、k)はiのkは=; I> = J; i--) の#define PB一back の#define作るmake_pair の#define INF INT_MAX の#define INF LLONG_MAX #定義(-1)ACOS PIを の#define第1FIR の#define第秒 用いて 名前空間STDを、 const int型のmod = 998244353 ; LL KSM(LLのA、INT B){ LLは、resは =1 ; 一方、(b)は、{ もし、(B&1)RES = RES *%のMOD。*%の= MODを。 B >> = 1 。 } 戻りRES。 } LL C(INT N、int型M){ LL resdw1 = 1 。 担当者(I、1、N)resdw1 = resdw1 * I%MOD。 LL resdw2 = 1 。 担当者(I、1、M - N)resdw2 = resdw2 * I%MOD。 LL resup = 1 ; 担当者(I、1、M)resup = resup * I%のMOD。 戻り resup * KSM(resdw1、MOD - 2)%MOD * KSM(resdw2、MOD - 2)%のMOD。 } int型のmain(){ int型N、M。 scanf関数(" %D%D "、&N、&M)。 もし(N == 2)プット(" 0 " )。 他{ LL ANS = KSM(2LL、N - 3)* 1LL *(N - 2)%のMOD * C(N - 1、m)の%モッド; printf(" %のLLD \ n " 、ANS)。 } 戻り 0 。 }