問題一覧 > 教育的問題

No.2397 ω冪

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 8
作問者 : 👑 p-adicp-adic / テスター : testestesttestestest googol_S0googol_S0
1 ProblemId : 8859 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2023-03-05 22:37:33

問題文

この問題は順序数演算を元にした問題です。順序数演算の通常の定義を述べるには順序数の複雑な定義を説明しなければなりませんが、ここでは一般的な集合の言葉のみを用いて順序数演算を拡張する集合演算を導入します。

 

集合 $X, Y$ と非負整数 $n$ に対し、集合 $X + \omega^Y \times n$ を次のように再帰的に定めます:

$\displaystyle X + \omega^Y \times n = \left\{ \begin{array}{ll} X & (n = 0) \\ X \cup \{X\} & (n = 1 \land Y = \{\}) \\ \bigcup_{y \in Y} \bigcup_{m = 0}^{\infty} (X + \omega^y \times m) & (n = 1 \land Y \neq \{\}) \\ (X + \omega^Y \times (n-1)) + \omega^Y \times 1 & (n > 1) \end{array} \right. $

ただし近代的な集合論においては集合の全ての要素が集合となるように定式化されるため、$Y$ の各要素 $y$ もまた集合であり上式の $X + \omega^y \times m$ がwell-formedであることに注意しましょう。

このように定めた演算に関して、$\{\} + \omega^{\{\{\}\}} \times 1$ は順序数の文脈だと $\omega$ と書かれ、順序数 $\alpha, \beta$ と正整数 $n$ に対する $\alpha + \omega^{\beta} \times n$ は今回の定式化と通常の順序数演算で厳密に一致します。任意の順序数は通常の順序数演算に関する $\omega$ の冪乗の $0$ 個以上の有限和で表せることが知られており、特に $\omega$ を底とするカントール標準形という表示方法を用いると順序数間の $\in$ 関係が辞書式順序で判定できることが知られています。ただしカントール標準形の辞書式順序の定義そのものに(指数部分に現れる順序数の)$\in$ 関係が使われることに注意しましょう。

 

正整数 $n$ に対し、$n = (2a+1)2^b$ を満たす一意な非負整数の組 $(a,b)$ を $(n_0,n_1)$ と表します。

非負整数 $n$ に対し、集合 $f(n)$ を次の再帰式で定めます:

$\displaystyle f(n) = \left\{ \begin{array}{ll} \displaystyle \{\} &\displaystyle (n = 0) \\ \displaystyle f(n_0) + \omega^{f(n_1)} \times 1 &\displaystyle (n \neq 0) \end{array} \right. $

計算例:(クリックで開く)

 

例えば $f(0),f(1),f(3)$ は

$\displaystyle \begin{array}{rcl} \displaystyle f(0) &\displaystyle = &\displaystyle \{\} \\ \displaystyle f(1) &\displaystyle = &\displaystyle f((2 \times 0 + 1)2^0) = f(0) + \omega^{f(0)} \times 1 = \{\} + \omega^{\{\}} \times 1 = \{\} \cup \{\{\}\} = \{\{\}\} \\ \displaystyle f(3) &\displaystyle = &\displaystyle f((2 \times 1 + 1)2^0) = f(1) + \omega^{f(0)} \times 1 = \{\{\}\} + \omega^{\{\}} \times 1 = \{\{\}\} \cup \{\{\{\}\}\} = \{\{\},\{\{\}\}\} \end{array} $

と求めることができます。

 

入力に非負整数 $N$ と $M$ が与えられます。

$f(N) \in f(M)$ が成り立つか否かを判定してください。

入力

入力は次の形式で標準入力から $2$ 行で与えられます:

$1$ 行目に $N$ が $2$ 進法表記で与えられます。

$2$ 行目に $M$ が $2$ 進法表記で与えられます。

制約

入力は以下の制約を満たします:

  • $N$ は $2^{10^5}$ 未満の非負整数
  • $M$ は $2^{10^5}$ 未満の非負整数

出力

$f(N) \in f(M)$ が成り立つ場合はYesと、成り立たない場合はNoと出力してください。

最後に改行してください。

サンプル

サンプル1
入力
0
0
出力
No

$f(0) = \{\}$ です。$\{\} \in \{\}$ は成り立ちません。

サンプル2
入力
0
1
出力
Yes

$f(0) = \{\}$ かつ $f(1) = \{\{\}\}$ です。$\{\} \in \{\{\}\}$ が成り立ちます。

サンプル3
入力
1
11

入力が $2$ 進法表記で与えられることに注意してください。

出力
Yes

$f(1) = \{\{\}\}$ かつ $f(3) = \{\{\},\{\{\}\}\}$ です。$\{\{\}\} \in \{\{\},\{\{\}\}\}$ が成り立ちます。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。