torus711 のアレ

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

TopCoder SRM 670, Division 1, Level 1 : Bracket107

問題概要

 '(' と ')' からなる,括弧がバランスした文字列 $S$ が与えられる.4 つの性質,

  • 長さが $S$ と等しい
  • 括弧がバランスしている
  • $S$ と等しくない
  • $S$ との最長共通部分列 (LCS) の長さが最長

を満たす文字列の総数を求めよ.

  • $4 \leq |S| \leq 50$
続きを読む

TopCoder, Single Round Match 666, Division 1, Level 1 : WalkOverATree

問題概要

 $N$ 頂点の木があって,各頂点は $0$ から $N - 1$ で番号付けられている.木の情報は配列 $\mathit{ parent }$ で与えられ,有効な $i$ について,頂点 $i + 1$ と $\mathit{ parent }_i$ の間に辺があることを表す.
 この木の上で移動することを考える.あるノードからの一回の移動では,そのノードに隣接する頂点に移動することができる.
 頂点 $0$ から始めて,$L$ 回以内の移動で到達できる頂点の数を求めよ(始点も含む)(重複は数えない).

  • $1 \leq N \leq 50$
  • $0 \leq \mathit{ parent }_i \leq i$
  • $1 \leq L \leq 100$
続きを読む

TopCoder, Single Round Match 666, Division 2, Level 2 : GoodString

問題概要

 文字列に対して,以下の操作を考える

  • 文字列のどこか(先頭,末尾も許容)に,文字列 "ab" を挿入する

 空文字列から始めてこの操作を複数回適用することで,文字列 $S$ を作ることができるか?

  • $1 \leq |S| \leq 50$
  • $S_i \in \{ \mathrm{ `a', `b' } \}$
続きを読む

TopCoder, SRM 666, Division 2, Level 1 : DevuAndGame

問題概要

 全ての頂点の出次数が高々 1 であるような,$N$ 頂点の有向グラフが与えられる.このグラフにおいて頂点 0 から辺に沿って移動したとき,出次数 0 の頂点に到達可能か?

  • $1 \leq N \leq 50$
続きを読む

Codeforces 323, Division 1, B ( Division 2, D ) : Once Again...

問題概要

 $n$ 項の数列を $T$ 回繰り返した,$nT$ 要素の数列 $a$ が与えられる(与えられるのは最初の $n$ 要素のみ).$a$ の単調非減少な部分列の内,最長のものの長さを求めよ.

  • $1 \leq n \leq 100$
  • $1 \leq T \leq 10^7$
  • $1 \leq a_i \leq 300$
続きを読む