AtCoderチャレンジ供養会場(2020/01/08-2020/01/14)
コンテストでの時間切れや解けなかった過去問を振り返って供養していく
1/8: AtCoder Beginner Contest 140 F - Many Slimes
Difficulty: 2066 (記事作成時点) 上記のような木を構成するための適切な葉の配置の条件は、任意の部分木について、部分木の葉集合の最大値を持つ葉が1つであることである 計算量は 供養
問題
解法
No
を出力して終了
Yes
を出力する躓いた点
1/9: AtCoder Regular Contest 077 E - guruguru
Difficulty: 2075 (記事作成時点) お気に入りの明るさ を から に変化させたときに、それぞれの区間についてボタンを押す回数がどのように増減するか考え、帰納的に求めていく 上記操作はループの処理を省略しているので、実装としては 計算量は 供養
問題
解法
$$
C_{0} = \sum_{i = 1}^{n - 1} \left \{
\begin{array}{}
(a^{'}_{i + 1} + M - a^{'}_{i})\; \mathrm{mod}\; M & \mathrm{if}\; a^{'}_{i} \lt a^{'}_{i + 1} \\
a^{'}_{i + 1} & \mathrm{else}
\end{array}
\right.
$$躓いた点
1/10: AtCoder Regular Contest 041 C - ウサギ跳び
Difficulty: 2075(estimated) (記事作成時点) ウサギ について、右向きの一連のウサギ集合 と左向きの一連のウサギ集合 は衝突するが、集合の要素が大きい方が動いて小さい方に衝突していく方が合計の移動回数が多くなる 計算量は 供養
問題
解法
$$
S = \left \{
\begin{array}{}
P_{R} + 1 & \mathrm{if}\; N_{R} \lt N_{L} \\
P_{L} & \mathrm{else}
\end{array}
\right.
$$躓いた点
1/11: AtCoder Beginner Contest 107 D - Median of Medians
Difficulty: 2086 (記事作成時点) について、 であるような最小の を求める 計算量は としたときに 供養
問題
解法
躓いた点
1/12: AtCoder Beginner Contest 150 D - Semi Common Multiple
Difficulty: 1565 (記事作成時点) 実装としては 計算量は として 供養
問題
解法
躓いた点
1/13: AtCoder Beginner Contest 150 F - Xor Shift
Difficulty: 2231 (記事作成時点) 実装は 計算量は供養
問題
解法
躓いた点
1/14: 第6回 ドワンゴからの挑戦状 予選 B - Fusing Slimes
Difficulty: 1686 (記事作成時点) 実装は 計算量は供養
問題
解法
$$
\begin{align}
\because \sum_{i = 2}^{N}\sum_{k = 1}^{i - 1}\frac{1}{k}(x_{i} - x_{i - 1}) &= \frac{1}{1}(x_{2} - x_{1}) + \dots + (\frac{1}{1} + \dots + \frac{1}{N - 1})(x_{N} - x_{N - 1}) \\
&= \frac{1}{1}(x_{2} - x{1} + \dots + x_{N} - x_{N - 1}) + \dots + \frac{1}{N - 1}(x_{N} - x_{N - 1}) \\
&= \frac{1}{1}(x_{N} - x_{1}) + \dots + \frac{1}{N - 1}(x_{N} - x_{N - 1}) \\
&= \sum_{k = 1}^{N - 1}\frac{x_{N} - x_{k}}{k}
\end{align}
$$躓いた点