torus711 のアレ

主に競技プログラミングの問題について書きます.PC 以外だと数式が表示されないかもしれないです

AtCoder Beginner Contest 354, E : Remove Pairs

問題概要

 $n$ 枚のカードを用いた次のような 2 人ゲームをする.$i$ 番目のカードの表面には数 $A_i$ が,裏面には数 $B_i$ が書かれている.ゲーム開始時,すべてのカードは場に置かれている.
 プレイヤーは交互に次の行動を繰り返す.

  • $A_i = A_j$ または $B_i = B_j$ の少なくともいずれかを満たす $i, j$ を選び,カード $i, j$ を場から取り除く.

操作を行えない場合は,そのプレイヤーの敗北となる.
 両プレイヤーが最適にプレイしたとき,勝つのはどちらか?

制約

  • $1 \leq n \leq 18$
  • $1 \leq A_i, B_i \leq 10^9$
続きを読む

AtCoder Beginner Contest 353, E : Yet Another Sigma Problem

問題概要

 2 つの文字列の最長共通接頭辞 (Longest Common Prefix; LCP) を求める関数を $\mathrm{ LCP }$ とする.英小文字からなるすべての文字列からなる集合を $\mathcal S$ として,関数 $f \mathpunct{:} \mathcal S \times \mathcal S \to \mathbb Z_{ \geq 0 }$ を
\begin{equation*}
f( x, y ) = | \mathrm{ LCP }( x, y ) |
\end{equation*}
で定義する.
 英小文字からなる文字列 $n$ 個からなる列 $S = \langle S_1, S_2, \dots, S_n \rangle$ が与えられる.式
\begin{equation*}
\sum_{ i = 1 }^{ n - 1 }\sum_{ j = i + 1 }^{ n } f( S_i, S_j )
\end{equation*}
を求めよ.

制約

  • $2 \leq n \leq 3 \times 10^5$
  • $1 \leq | S_i |$
  • $\sum_{ i = 1 }^{ n } | S_i | \leq 3 \times 10^5$
続きを読む

AtCoder Beginner Contest 353, D : Another Sigma Problem

問題概要

 関数 $f_s( x )$ を,整数 $x$ を $x$ を $10$ 進数で表現する文字列に変換する関数とし,関数 $f_i( S )$ を,正整数を $10$ 進数で表現する文字列 $S$ を $S$ が表現する正整数に変換する関数とする.また,文字列に対する二項演算 $\mathord{+}$ を文字列の連結として定義する.
 $n$ 項からなる正整数列 $A = \langle A_1, A_2, \dots, A_n \rangle$ が与えられる.式
\begin{equation*}
\sum_{ i = 1 }^{ n - 1 }\sum_{ j = i + 1 }^{ n } f_i( f_s( A_i ) + f_s( A_j ) )
\end{equation*}
を $998{,}244{,}353$ で割った余りを求めよ.

制約

  • $2 \leq n \leq 2 \times 10^5$
  • $1 \leq A_i \leq 10^9$
続きを読む

AtCoder Beginner Contest 353, C : Sigma Problem

問題概要

 関数 $f \mathpunct{:} ( \mathbb Z_{ > 0 } )^2 \to \mathbb Z_{ \geq 0 }$ を
\begin{equation*}
f( x, y ) = ( x + y ) \bmod 10^8
\end{equation*}
で定義する.
 $n$ 項からなる正整数列 $A = \langle A_1, A_2, \dots, A_n \rangle$ が与えられる.式
\begin{equation*}
\sum_{ i = 1 }^{ n - 1 }\sum_{ j = i + 1 }^{ n } f( A_i, A_j )
\end{equation*}
で定まる値を求めよ.

制約

  • $2 \leq n \leq 3 \times 10^5$
  • $1 \leq A_i < 10^8$
続きを読む

AtCoder Beginner Contest 352, D : Permutation Subsequence

問題概要

 サイズ $n$ の順列 $P = \langle P_1, P_2, \dots, P_n \rangle$ が与えられる.
 $k$ 項からなる $P$ の添字列 $I = \langle I_1, I_2, \dots, I_k \rangle$ であって,以下の 2 条件を満たすものを考える.

  • $1 \leq I_1 < I_2 < \dots < I_k \leq n$
  • $\langle P_{ I_1 }, P_{ I_2 }, \dots, P_{ I_k } \rangle$ は連続する整数からなる.

 条件を満たす添字列 $I$ の内,$I_k - I_1$ を最小化したときのその値を求めよ.

制約

  • $1 \leq k \leq n \leq 2 \times 10^5$
  • $1 \leq P_i \leq n$
  • $i \neq j \Rightarrow P_i \neq P_j$
続きを読む