【Bzoj5416]バブルソート

結論:配列があれば、良好な配列であり、その長さは3中に存在する配列を低下させない場合にのみ
証明:3滴の配列の長さを示唆して考えてみては必然的に、3回交換しました
これら三つの利点実際には2、したがって、違法
また、取得することができる:i番目、または最大プレフィックスを、いずれかのMEX前
(つまり、彼よりどちらか彼の前にいない大きな、または後、彼よりも、彼は劣らせません)
Fと[i] [j]は、残りの番号i、(辞書式順序とは見なされない)NJ充填の現在の実施形態の最大値を表します
再帰式を得た結論によれば、F [0] [0] = 1 [I] [J] = \ sum_ {k = 0} ^ {J} F [I-1] [k]は$、F $
すなわち、$のF [i] [j]はFを= [I-1]〜[J] + F [I] [J-1] $、$ Fについて解く[i] [j]は、Cを=(iは、JがJ + 1) -c $(iはJ、J-2 +)(メソッドを構築:任意の数cを見つけることを(私は満たされているJ + K 1、J + K2を)+、それは一定であることができます)
位置よりも良い2.Iシーケンス番号P、Pの1.I前と同じ第1及びプレ階乗逆、その後Fを迅速に計算することができ、そして列挙した後、I、及び計算
私の最大値は、Xの前に[P [i]は<Y \ルX] + F MEX Y、分けて考える新しい最大充填の貢献とkが持っている$ ANS + = CDOT \ [NI] [NX] fは、提供されています合計$、 - [N-I + 1] [1 N- \ MAX(X、P [I])]
1つの#include <ビット/ STDC ++ H>
 2  使用して 名前空間STDを、
3  の#define MOD 998244353
 4  の#define N 1200005
 5  int型、T、N、K、X、Y、ANS、VIS [N]、FAC [N]、INV [N]。
6  INT C(整数 nは、INTのM){
 7      であれば(M < 0戻り 0 ;
8      リターン 1LLの* FAC [N] * INV [M]%MOD * INV [nm]の%MOD。
9  }
 10  int型 F(int型のn、int型M){
 11      リターン(C(N + M、M)-C(N + M、M- 1)+ MOD)%MOD。
12  }
 13  INT メイン(){
 14      FAC [ 0 ] = INVを[ 0 ] = INVを[ 1 ] = 1 15      のためには、int型 = Iを1 ; iはN- < 4 ; I ++)FAC [i]は= 1LL * FACを[I- 1 ] * I%MOD。
16      のためには、int型、I = 2 ; iはN- < 4 ; iは++)INVを[I] = 1LL *(MOD-MOD / I)* INV [MOD%I]%MOD。
17      のためにint型 = Iを2 ; iは<N- 4;私は、[1- [I] = 1LLの*のINV)INV ++を1 [I]%INV *] MOD。
18      のscanf(" %dの"、&T)。
19      一方(t-- ){
 20          のscanf(" %d個"、&N)
21          X = ANS = 0 22          、Y = 1 23          のためには、int型 i = 1 ; iが<= N + 1、iは++)VIS [I] = 0 ;
24          のためにint型 i = 1 ; iが<= N iが++ ){
 25             scanf関数(" %のD "、&K)。
26              であれば((K <Y)&&(Y <= X))ANS =(ANS + F(NI、NX))%MOD。
27              X = MAX(X、K)。
28              であれば(X <N)= ANS(ANS + F(N-I + 1、NX- 1))%MOD。
29              であれば((K = X)&&(K =!Y)){
 30                  のための(iは++ iが++; iが<= N)のscanf(" %※D " )。
31                  ブレーク;
32              }
 33              VIS [K] = 1に34              一方(VIS [Y])Y ++ 35          }
 36          のprintf(" %Dを\ n " 、ANS)。
37      }
 38 }
コードの表示

 

おすすめ

転載: www.cnblogs.com/PYWBKTDA/p/11506375.html