きろく

特筆すべき記録のまとめ

JOI '09 春合宿1:1- Sequence 数列

問題

https://www.ioi-jp.org/camp/2009/2009-sp-tasks/2009-sp_tr-day1_20.pdf

解法

数列 A を書き出して実験してみると,1 ~ (m * 2^m) 項目の偶奇が周期的に繰り返していることが分かる.1つの周期の中にいくつ奇数の項があるかを数え,(1 ~ q に含まれる奇数の項) - (1 ~ (p - 1) に含まれる奇数の項) で答えがもとまる.1つの周期の中の偶奇をもとめる中で数列を m 個ずつに分けた群数列を考え,各群の中の偶奇を bit が立っているかどうかだとみなすことで各群を1つの数字で表すことが可能になり,空間計算量を削減できる.O(2^m * m).

解答

atcoder.jp

bit 関連の操作でバグらせていた.

f:id:babcs2035:20190311222129p:plain