差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
最新のリビジョン両方とも次のリビジョン
programming_algorithm:contest_history:atcoder:2019:0511_diverta2019 [2019/05/16] – [解法] ikatakosprogramming_algorithm:contest_history:atcoder:2019:0511_diverta2019 [2019/05/16] – [解法] ikatakos
行 164: 行 164:
 先述の通り、$X$ は一意に確定する。末尾の $X$ へは $DP[X][N][0]$ から遷移するので、それが答え。 先述の通り、$X$ は一意に確定する。末尾の $X$ へは $DP[X][N][0]$ から遷移するので、それが答え。
  
-末尾が $X$ だから見るべきは $DP[X][N][X]$ じゃないのかと一瞬思うが、最後必ず区間を確定するので、遷移元でる0の方を見る。 +末尾が $X$ だから見るべきは $DP[X][N][X]$ じゃないのかと一瞬思うが、これはあくま最後に決定した区間が $X$ ある」の数。$accの末尾必ず区間として確定しなければならないが、$DP[X][N][X]$ はその前の $X$ で確定ま末尾で未確定状態の場合も含まれる。$DP[X][N][0]$ であれば、最後に確定した 0 から必ず末尾の $X$ に遷移できる。
- +
-$acc$ 上で最後に出現した0の後に $X$ が複数個ろうが、条件を満たすようにすには末尾の $X以外使えない。 +
- +
-$DP[X][N][X]$ はそのような使えない $X$ も混ざった値となってしまっている。+
  
   累積xor  X  0  1  ...  0  X  X  2  X   累積xor  X  0  1  ...  0  X  X  2  X
                             ~~~~     ~ ←末尾は必ず使う                             ~~~~     ~ ←末尾は必ず使う
-                            └こいつらを使ったら、末尾との間に0がもう1つないといけないので使用不可 +                            └DP[X][N][X]はで終わったまま 
-               →DP[X][N][X]はこいつら(や、もっ前のX)で終わパターンも含んでしってい+                              末尾では区間未確定なパターンも含ま
  
 ===累積xorの末尾が0だった場合=== ===累積xorの末尾が0だった場合===
programming_algorithm/contest_history/atcoder/2019/0511_diverta2019.txt · 最終更新: 2019/05/16 by ikatakos
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0