NOMURA プログラミングコンテスト 2021(ARC121) C - Odd Even Sort

AtCoder公式の解説とは若干異なる手法で解いたので記事化。

問題

atcoder.jp

  • 公式解説

Editorial - NOMURA Programming Contest 2021(AtCoder Regular Contest 121)

概要

$(1, 2, ...N)$の順列$p$がある(1-indexed)。

隣り合う要素$p_n$と$p_{n+1}$を入れ替えて昇順に並び替える。 ただし、奇数回目の操作では$n$は奇数、偶数回目の操作では$n$は偶数でなければならない。

$p$を昇順に並べ替える操作列であって、操作回数が$N^2$回以内であるものを1つ求めよ。

注記:

  • 有限回の操作で任意の$p$をソートできることは証明可能である。
  • 必ずしも最短の操作列を出力する必要はない。
続きを読む

Codeforces Global Round 14 1515E - Phoenix and Computers

問題

要約

$1$番から$N$番までのコンピュータが1列に並んでいます。

最初全てのコンピュータはOFFになっており、コンピュータの電源を任意の順番でONにしていきます。

ここで、両隣のコンピュータがONならば、真ん中のコンピュータも自動的にONになります。

全てのコンピュータをONにする方法は何通りあるでしょうか? 素数$M\ $で割った余りを求めてください。

補足

  • 左端・右端のコンピュータは「両隣」がないので自動的にONになりません
  • 電源をONにできるのは、電源がOFFのコンピュータだけです。

制約

  • $3\leq N \leq 400$
  • $10^8\leq M\leq 10^9$
続きを読む

ZONeエナジープログラミングコンテスト F-出会いと別れ

問題

$0$ から $2^n-1$ までの番号がついた星があります。

$i\oplus j$が $A_1, A_2, ..., A_M $のいずれにも含まれないような星 $i$と $j$を選んで、 相互に移動可能なワープホールを作ることができます。

$N-1$個のワープホールを作ることで、任意の2つの星の間をワープホールで移動できるようにしたいです。

この目標が可能であるか判定し、可能ならばワープホールの作り方の一例を示してください。

  • $1\leq n\leq 18$
  • $0<A_1 \lt A_2 \lt ... \lt A_M \lt N(=2^n)$
続きを読む

ブログ始めました

暇なときに競技プログラミングの考察や解法などを書くブログ。

 

  • なるべく考察の過程が分かるような書き方を心がける

をテーマに解説記事を書いていきたいと思っています。