問題一覧 > 通常問題

No.2183 LCA on Rational Tree

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 19
作問者 : noya2 / テスター : shobonvip
1 ProblemId : 8971 / 自分の提出
問題文最終更新日: 2023-01-08 03:00:24

問題文

任意の正の有理数 uu について、u=pqu = \dfrac{p}{q} となる互いに素な正整数の組 (p,q)(p,q) が 唯一存在するので、このような (p,q)(p,q)( p(u),q(u) )(\ p(u),q(u)\ ) と表します。

簡単な問題文

頂点集合を VV, 辺集合を EE とするグラフ G=(V,E)G=(V,E) を次のように定めます。

    V={uQ>0  1p(u)<q(u)}V=\lbrace u\in \mathbb{Q}_{\gt 0}\ |\ 1\le p(u)\lt q(u) \rbrace \qquad E={(u,p(u)+1q(u)+1)  uV}E=\lbrace (u, \dfrac{p(u)+1}{q(u)+1})\ |\ u\in V \rbrace
このグラフは形式的に頂点 11 を根とした根付き木とみなせます。

QQ 個のクエリが与えられます。 ii 番目のクエリでは ui,viVu_i,v_i\in V が与えられます。 上記の根付き木における頂点 ui,viu_i,v_i の最小共通祖先を求めてください。


厳密な問題文

頂点集合を VV, 辺集合を EE とするグラフ G=(V,E)G=(V,E) を次のように定めます。

    V={uQ>0  1p(u)<q(u)1010100}V=\lbrace u\in \mathbb{Q}_{\gt 0}\ |\ 1\le p(u)\lt q(u)\le 10^{10^{100}} \rbrace \qquad E={(u,p(u)+1q(u)+1)  uV, p(u)+1q(u)+1V}E=\lbrace (u, \dfrac{p(u)+1}{q(u)+1})\ |\ u\in V,\ \dfrac{p(u)+1}{q(u)+1}\in V \rbrace
GG において頂点 r=10100110100r=\dfrac{10^{100}-1}{10^{100}} を含む連結成分は木になります。 その根を rr とした根付き木 TT について QQ 個のクエリに答えてください。

ii 番目のクエリでは TT22 つの頂点 ui,viu_i,v_ip(ui),q(ui),p(vi),q(vi)p(u_i),q(u_i),p(v_i),q(v_i) によって与えられます。 TT における頂点 ui,viu_i,v_i の最小共通祖先を頂点 lil_i とするとき、 p(li),q(li)p(l_i),q(l_i) を求めてください。

制約

  • 入力はすべて整数
  • 1Q3×1031\le Q\le 3\times 10^3
  • 1p(ui)<q(ui)1091\le p(u_i)\lt q(u_i)\le 10^9 かつ p(ui),q(ui)p(u_i),q(u_i) は互いに素 (1iQ)(1\le i\le Q)
  • 1p(vi)<q(vi)1091\le p(v_i)\lt q(v_i)\le 10^9 かつ p(vi),q(vi)p(v_i),q(v_i) は互いに素 (1iQ)(1\le i\le Q)
  • 入力

    QQ
    p(u1)p(u_1) q(u1)q(u_1) p(v1)p(v_1) q(v1)q(v_1)
    p(u2)p(u_2) q(u2)q(u_2) p(v2)p(v_2) q(v2)q(v_2)
              \vdots
    p(uQ)p(u_Q) q(uQ)q(u_Q) p(vQ)p(v_Q) q(vQ)q(v_Q)
    

    出力

    ii 番目のクエリの答えが頂点 lil_i であるとき、 p(li),q(li)p(l_i), q(l_i) を空白区切りで出力してください。 クエリ毎に改行してください。

    サンプル

    サンプル1
    入力
    3
    1 2 1 3
    2 5 4 7
    314159265 358979323 271828182 845904523
    出力
    1 2
    2 3
    8 9
    

    頂点 12\dfrac{1}{2} と頂点 13\dfrac{1}{3} は辺で繋がれています。

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