torus711 のアレ

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

AtCoder Beginner Contest 349, C : Airport Code

問題概要

 英小文字からなる文字列 $S$ と長さ $3$ の英大文字からなる文字列 $T$ が与えれる.$S, T$ が次の条件を満たすかどうか,判定せよ*1

  • $S$ の長さ $3$ の部分列であり,その各文字を大文字に変換したものが $T$ に一致する.
  • $S$ の長さ $2$ の部分列であり,その各文字を大文字に変換したものの末尾に文字 X を追加したものが $T$ に一致する.

 部分列とは,元の列から $0$ 個以上の要素を削除して得られる列のことである.

制約

  • $3 \leq |S| \leq 10^5$

*1:条件は空港コードのインスパイアである.

続きを読む

AtCoder Beginner Contest 349, E : Weighted Tic-Tac-Toe

問題概要

 $3 \times 3$ のグリッド状の盤面があって,$i$ 行目第 $j$ 列には整数 $A_{ i, j }$ が書かれている.$A$ の総和は奇数である.
 この盤面を使って Tic-tac-toe をする.Tic-tac-toe で勝敗が付いた場合は,その勝者の勝ちとする.引き分けだった場合は,それぞれのプレイヤーについて当該プレイヤーがマークしたセルに書かれている整数の和を得点とし,より大きい得点を獲得したプレイヤーの勝ちとする.
 両者が最適にプレイしたときの勝者はどちらか?

制約

  • $| A_{ i, j } | \leq 10^9$
続きを読む

AtCoder Beginner Contest 346, D : Gomamayo Sequence

問題概要

 $n$ 項からなるバイナリ列 $S = \langle S_1, S_2, \dots, S_n \rangle$ ($S_i \in \{ 0, 1 \}$) が与えられる.$S$ に対し,次の操作を任意回適用できる.

  • コスト $C_i$ かけて $S_i$ を反転する.

 $S$ の添字 $i$ ($1 \leq i < n$) であって,$S_i = S_{ i + 1 }$ となるものが丁度ひとつであるようにするためにかかるコストの最小値はいくらか?

制約

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

AtCoder Beginner Contest 346, C : Σ

問題概要

 $n$ 項からなる正整数列 $A = \langle A_1, A_2, \dots, A_n \rangle$ と正整数 $k$ が与えられる.
 $1$ 以上 $k$ 以下の整数の内,$A$ に含まれないものの和はいくらか?

制約

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

AtCoder Beginner Contest 345, C : One Time Swap

問題概要

 文字列 $S$ が与えられる.$S$ に対し,$S$ の添字 $i, j$ ($1 \leq i < j \leq |S|$) を選び,$S_i$ と $S_j$ を入れ替える操作をちょうど $1$ 回行う.この操作によって作られる文字列は何種類あるか?

制約

  • $1 \leq |S| \leq 10^6$
  • $S_i \in \mathcal C$

 ここで,$\mathcal C$ はすべての英小文字からなる集合とする.

続きを読む