torus711 のアレ

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

AtCoder Beginner Contest 371, E : I Hate Sigma Problems

問題概要

 $n$ 項からなる整数列 $A = \langle A_1, A_2, \dots, A_n \rangle$ が与えられる.関数 $f \mathpunct{:} \{ 1, 2, \dots, n \}^2 \rightarrow \mathbb Z_{ \geq 0 }$ を以下で定義する:
\begin{align*}
f( l, r ) &= \langle A_l, A_{ l + 1 }, \dots, A_r \rangle \text{ に含まれる値の種類数} \\
&= \left| \{ A_l, A_{ l + 1 }, \dots, A_r \} \right|
\end{align*}
 以下を求めよ:
\begin{equation*}
\sum_{ i = 1 }^n \sum_{ j = i }^n f( i, j )
\end{equation*}

制約

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

AtCoder Beginner Contest 369, F : Gather Coins

問題概要

 $h \times w$ のグリッド状の盤面に $n$ 枚のコインが置かれている.$i$ 番目のコインはセル $( R_i, C_i )$ にあり,ここで,次が成り立つ:

  • $\forall i, ( R_i, C_i ) \not \in \{ ( 1, 1 ), ( h, w ) \}$
  • $i \neq j \Rightarrow ( R_i, C_i ) \neq ( R_j, C_j )$

 セル $( 1, 1 )$ から始めて,下または右への移動を繰り返してセル $( h, w )$ まで移動することを考える.より正確には,セル $( y, x )$ にいるとき,セル $( y + 1, x )$ または $( y, x + 1 )$ に移動できる(どちらもそのセルが存在する場合に限る).
 移動の途中でコインがあるセルを通ると,そのコインを得ることができる.得られるコインの最大枚数はいくらか? 加えて,その枚数を達成する移動方法をひとつ出力せよ.

制約

  • $2 \leq h, w \leq 2 \times 10^5$
  • $1 \leq n \leq \min( hw - 2, 2 \times 10^5 )$
続きを読む

AtCoder Beginner Contest 368 : D : Minimum Steiner Tree

問題概要

 $n$ 頂点の木 $G = ( V, E )$ と $V$ の部分集合 $W$ が与えられる.$G$ の $W$ をターミナルとする最小 Steiner 木の頂点数を求めよ.

制約

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

AtCoder Beginner Contest 365, E : Xor Sigma Problem

問題概要

 $n$ 項からなる正整数列 $A = \langle A_1, A_2, \dots, A_n \rangle$ が与えられる.次の値を求めよ:
\begin{equation*}
\sum_{ i = 1 }^{ n - 1 }\sum_{ j = i + 1 }^{ n }
( A_i \oplus A_{ i + 1 } \oplus \dots \oplus A_j )
\end{equation*}
ここで,二項演算 $\oplus$ は整数同士の bitwise xor を表す.

制約

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

AtCoder Beginner Contest 359, D : Avoid K Palindrome

問題概要

 A, B, ? からなる長さ $n$ の文字列 $S$ が与えられる.$S$ 中の ? を(それぞれ独立に)A または B に置き換えてできる文字列であって,長さ $k$ の任意の(連続する)部分文字列が回文でないようなものの個数を ${} \bmod {998{,}244{,}353}$ で求めよ.

制約

  • $2 \leq k \leq n \leq 1{,}000$
  • $k \leq 10$
続きを読む