Exponential Sorted Substrings

2 secs 1024 MB
programgmg2's icon programgmg2

解説

AiAj<AjAi{A_i}^{A_j} < {A_j}^{A_i} を満たすような Ai,AjA_i,A_j の値の条件は、以下の条件のうちいづれかを満たすときです。(長いので証明は追記に載せます)

  • Ai=1A_i=1 かつ Ai<AjA_i < A_j
  • 3Aj<Ai3 \leq A_j < A_i
  • (Ai,Aj)=(2,3)(A_i,A_j) = (2,3)
  • Ai2,3,4A_i \neq 2,3,4 かつ Aj=2A_j=2

これらの条件を利用して、数列 AA の構築を考えます。(以降の説明において、条件より AiAjA_i \neq A_j であることを断りなく用いています。)

1. AA33 以上の整数からのみなるとき

3Aj<Ai3 \leq A_j < A_i より、AA3AN3 \leq A_N となるような狭義単調減少数列です。このような AA の個数は、33 ~ MM の中から NN 個の整数を選ぶ組み合わせの総数に等しく M2CN_{M-2}C_{N} となります。

2. AA22 を含み 11 を含まないとき

  • AN=2A_N = 2 のとき、 Ai2,3,4A_i \neq 2,3,4 かつ Aj=2A_j=2 , 3Aj<Ai3 \leq A_j < A_i より AA5AN15 \leq A_{N-1} となる狭義単調減少数列となります。このような AA の個数は、55 ~ MM の中から N1N-1 個の整数を選ぶ組み合わせの総数に等しく M4CN1_{M-4}C_{N-1} となります。
  • AN1=2A_{N-1} = 2 のとき、(Ai,Aj)=(2,3)(A_i,A_j) = (2,3) より AN=3A_{N} = 3 となります。残りの N2N-2 個の要素は 3Aj<Ai3 \leq A_j < A_iAi2,3,4A_i \neq 2,3,4 かつ Aj=2A_j=2 より 5AN25 \leq A_{N-2} となる狭義単調減少数列となります。このような AA の個数は5M5 \leq M においてのみ55 ~ MM の中から N2N-2 個の整数を選ぶ組み合わせの総数に等しく M4CN2_{M-4}C_{N-2} となります。M<5M<5 のときは 00 個です。
  • AN2A_{N-2} 以前の要素が 22 になることはあり得ません。なぜなら、Ai=2A_i = 2 のときに条件を満たせるような AjA_j33 しかなく、AA に同じ数字を複数回入れることはできないからです。

3. AA11 を含み 22 を含まないとき

  • A1=1A_1 = 1 のとき、Ai=1A_i=1 かつ Ai<AjA_i < A_j より A2A_2 以降の要素は必ず 33 以上となります。よって 3Aj<Ai3 \leq A_j < A_i から、残り N1N-1 個の要素は 3AN3 \leq A_{N} となる狭義単調減少数列となります。このような AA の個数は、3M3 \leq M においてのみ、 33 ~ MM の中から N1N-1 個の整数を選ぶ組み合わせの総数に等しく M2CN1_{M-2}C_{N-1} となります。M<3M < 3 のときは 00 個です。
  • A2A_2 以降が 11 となることはあり得ません。Aj=1A_j=1 のときに条件を満たせるような整数 AiA_i は存在しないからです。

4. AA1122 も含むとき

2.や3.の考察により、

  • A1=1A_1 = 1
  • AN=2A_{N} = 2 または AN1,AN=2,3A_{N-1},A_{N} = 2,3

の両方が成り立たなければなりません。

  • AN=2A_N = 2 のとき、 Ai2,3,4A_i \neq 2,3,4 かつ Aj=2A_j=2 , 3Aj<Ai3 \leq A_j < A_i より AA5AN15 \leq A_{N-1} となる狭義単調減少数列となります。このような AA の個数は、55 ~ MM の中から N2N-2 個の整数を選ぶ組み合わせの総数に等しく M4CN2_{M-4}C_{N-2} となります。

  • AN1,AN=2,3A_{N-1},A_{N} = 2,3 のとき、残りの N3N-3 個の要素は 3Aj<Ai3 \leq A_j < A_iAi2,3,4A_i \neq 2,3,4 かつ Aj=2A_j=2 より 5AN35 \leq A_{N-3} となる狭義単調減少数列となります。このような AA の個数は、55 ~ MM の中から N3N-3 個の整数を選ぶ組み合わせの総数に等しく M4CN3_{M-4}C_{N-3} となります。

以上の考察から、答えは 3N,5M3 \leq N , 5 \leq M ...s において M2CN+(M4CN1+M4CN2)+M2CN1+(M4CN2+M4CN3)_{M-2}C_{N} +( _{M-4}C_{N-1} + _{M-4}C_{N-2} )+ _{M-2}C_{N-1} + (_{M-4}C_{N-2} + _{M-4}C_{N-3}) です。 N,MN,M の値がsを満たさない場合について考えます。

  • N=2N=2 の場合、11 ~ MM の中から 22 つ選んで取り出し、適切に並び変えることで {2,4}\{2,4\} 以外の組み合わせにおいては条件を満たす数列を構築できます。答えは M=2,3M=2,3 のとき MC2_MC_{2}4M4 \leq M のとき MC21_MC_{2}-1 です。
  • 3NM<53 \leq N \leq M < 5 の場合、AA として考えられる数列 MNM^N 通りを全列挙し、そのそれぞれについて条件を満たすかどうか判定すればよいです。(条件を利用することでもっと候補を絞り込めるので、手計算で各 (N,M)=(3,3),(3,4),(4,4)(N,M)=(3,3),(3,4),(4,4) について答えを求めても良いです。)

計算量について考えます。

  • N,MN,M がsを満たす場合については、 答えは階乗とその逆元の値を前計算しておくことで O(1)O(1) で求めることができます。よって、全体として時間計算量は前計算がボトルネックとなり O(max(N,M))=O(M)O(\max(N,M))=O(M) であるため、実行時間制限に間に合います。

  • N,MN,M がsを満たさない場合について、

    • N=2N=2 の場合、MC2_MC_{2}O(1)O(1) で計算できるので、全体としても O(1)O(1) で求めることができます。

    • 3NM<53 \leq N \leq M < 5 の場合、 AA として考えられる数列 MNM^N 通りを全列挙し、そのそれぞれについて条件を満たすかどうか O(N2)O(N^2) で判定すればよいです。全体の計算量は O(MNN2)O(M^NN^2) ですが、NM4N \leq M \leq 4 より 余裕で実行時間制限に間に合います。手計算で各 N,MN,M について答えを求めてコードに埋め込めば O(1)O(1) でいけます。

追記

  • ab<baa^b < b^a を満たすような a,ba,b の値の条件

とりあえず、与えられた不等式を変形してみます。a,ba,b の少なくともどちらか一方が 11 のときや、a=ba = b のときの大小関係は明らか(a=1a=1 かつ aba \neq b のときのみ不等式成立)であるため、ab,2a,ba \neq b , 2 \leq a,b の場合を考えます。

ab<babloga<alogbblogb<aloga\displaystyle a^b < b^a \longleftrightarrow b\log a < a\log b \longleftrightarrow \frac{b}{\log b} < \frac{a}{\log a}

ここで、 f(x)=xlogx\displaystyle f(x) = \frac{x}{\log x} とおくと ab<baf(b)<f(a)a^b < b^a \longleftrightarrow f(b) < f(a) が成り立てば良いと分かります。

また、 f(x)f(x) のグラフを微分して描いてみると、0<x0 < x の部分においてグラフは下に凸の形をしており x=e2.71x=e \fallingdotseq 2.71 のとき極小値をとることが分かります。よって、(e<)3b<a(e <) 3 \leq b < a のときは不等式が成り立ちます。

では、a,ba,b のどちらか一方が 22 のときはどうなるのでしょうか。まず、a=2a=2 のときを考えてみます。

2b<b22bb2<02^b < b^2 \longleftrightarrow 2^b-b^2 < 0

ここで、b>0b>0 において 2bb2=02^b-b^2 = 0 の解は b=2,4b=2,4 であり、2bb2<02^b-b^2 < 0 を満たす正整数 bbb=3b=3 のみであるため、(a,b)=(2,3)(a,b) = (2,3) のときのみ不等式が成り立ちます。

b=2b=2 のときは、a2<2a2aa2>0a^2 < 2^a \longleftrightarrow 2^a-a^2 > 0 より、a=2a=2 のときと同様にして考えると aa2,3,42,3,4 以外の正整数であれば不等式が成り立ちます。

これまでの考察をまとめます。 不等式が成り立つのは、(a,b)(a,b) が以下の条件のうちいづれかを満たすときです。

  • a=1a=1 かつ a<ba < b
  • 3b<a3 \leq b < a
  • (a,b)=(2,3)(a,b) = (2,3)
  • a2,3,4a \neq 2,3,4 かつ b=2b=2

実装例