https://www.codechef.com/MAY17
Chef and his daily routine
CESから成る文字列が与えられる。
それは1日のある時刻での作業を時系列順で伝えている。
その人は一日を料理する(C),食べる(E)、寝る(S)の順でこなす。
正しく時系列順で伝えられているかどうか判定せよ。
Courses in an university
N個の授業があり、i番目の授業を履修する為には[0,i)の中から少なくともA[i]個、履修してある必要がある。
全部の授業を履修可能にするために履修しなくても良い授業の最大個数は?
Median of adjacent maximum numbers
2N個の配列Aがある。
ここから、B[i] = max(A[2i-1], A[2i])として配列Bを作る。
配列Aを上手くシャッフルして配列Bの中央値を最大化したい。
中央値の最大値と、その時の配列Aを答えよ。
Chef and Sub Array
0と1からなる長さNの配列Aがある。
これについてP個のクエリに答える。
- '?' : 配列中のある連続するK個に含まれる1の数の最大値を答える
- '!' : 配列を左にシフトする
Chef and Subsequences
N個の配列Aがある。
この配列の部分列のうち、その積がK以下であるものは何通りか。
Blocked websites
N個の文字列がある。
各文字列は
が決まっている。
フィルタリングは文字列を使うが、prefixが同じ文字列を通さないようにできる。
フィルタリングの文字列の長さの総和を最小化して、フィルタリングの文字列を決めよ。
Gotham PD
(問題文がかなり複雑なので本文を読んだほうがいいです)
N頂点の木がある(頂点は1~Nというわけではないので注意)。
各頂点には鍵があり、頂点Rを根とした木を構築している。
Q個のクエリを処理する。
しかし、このクエリは暗号化されており、初期鍵は0で全てxorすることで復元できる。
- 0 u v k : 鍵kを持つ頂点uを作り、親は頂点vとする
- 1 v k : 頂点vから頂点Rへのパスの全ての鍵について key[i] xor kを計算し、その最小と最大を返す。最小と最大のxorが次のクエリの鍵となる
Long Sandwich
長さNのサンドイッチがある。
これをK以下のまとまりになるよう切る。
まとまりの個数を最小としたときの、切り方は何通りあるか(mod M)。
以下、解説
続きを読む