AtCoderチャレンジ供養会場(2019/12/28-2019/12/31)
コンテストでの時間切れや解けなかった過去問を振り返って供養していく
12/28: AtCoder Beginner Contest 147 E - Balanced Path
Difficulty: 1656 (2019/12/28現在) 計算量は として 供養
問題
解法
$$
\begin{align}
DP[i\rbrack[j\rbrack[k\rbrack &= DP[i - 1\rbrack[j\rbrack[k + C_{ij}\rbrack\\
&\lor DP[i - 1\rbrack[j\rbrack[|k - C_{ij}|\rbrack\\
&\lor DP[i\rbrack[j - 1\rbrack[k + C_{ij}\rbrack\\
&\lor DP[i\rbrack[j - 1\rbrack[|k - C_{ij}|\rbrack
\end{align}
$$躓いた点
12/29 AtCoder Grand Contest 041 C - Domino Quality
Difficulty: 2280 (2019/12/29現在)供養
問題
解法
aacd
bbcd
cdaa
cdbb
aabba
bc..a
bc..b
a.ccb
abbaa
a.bb.a
ab...a
.baabb
ac.cc.
aca...
bba.aa
aabbaa.
bc....a
bc....a
a..ab..
a..ab..
.aa.caa
..bbcbb
e.g. (2個の と1個の の組み合わせ)aacd.........
bbcd.........
cdaa.........
cdbb.........
....aacd.....
....bbcd.....
....cdaa.....
....cdbb.....
........aabba
........bc..a
........bc..b
........a.ccb
........abbaa
a..
a..
.aa
-1
を出力する躓いた点
12/30: AtCoder Beginner Contest 041 D - 徒競走
Difficulty: 1882(estimated) (2019/12/30現在) 部分点解法は省略 の部分集合 について、観客の情報と合致する着順のパターン数を とするとき、以下が言える これを式にすると 上記を計算するためのbitDPをする 計算量はbitmaskの前処理に、DPの計算に なので 供養
問題
解法
$$
\begin{equation}
f(S) = \sum_{v \in S^{'}} f(S \setminus \lbrace v \rbrace)\\
S^{'} = \lbrace v \mid v \in S \land \forall u. \forall i. (u \in S \setminus \lbrace v \rbrace) \land (1 \le i \le M) \land (x_{i} \ne v \lor y_{i} \ne u) \rbrace
\end{equation}
$$
i.e. について となり、自分より遅くついた情報があるうさぎ(もしくは自分自身)に対応するbitが立っているbitmaskとなる
i.e. について が最後尾であるパターン数を加算する躓いた点
12/31 AtCoder Regular Contest 017 C - 無駄なものが嫌いな人