Contenu connexe
Similaire à 競技プログラミングについて (20)
競技プログラミングについて
- 10. 円と多角形の共通部分の面積
1. 円と多角形の交点を求める
2. 複数の三角形に分割
3. 三角形の面積の和を計算
数学力
数学力
−数学や確率、行列などを応用した問題がたびたび出題される
2017/1/19 競技プログラミングについて 10
𝑛(1 ≤ 𝑛 ≤ 1018)番目のフィボナッチ数
1 1 2 3 5 8 13 21 34 55 89 144 …
𝐹𝑛 = 𝐹𝑛−2 + 𝐹𝑛−1: 2 項間漸化式
行列累乗に落とすと 𝑂(log 𝑛)
𝐹𝑛
𝐹𝑛+1
=
0 1
1 1
𝑛
0
1
- 16. ABC049 C - 白昼夢 / Daydream
文字列 S (Sの長さは10^5以下) が与えられる
T が空文字列である状態から
次の操作を好きな回数繰り返すことで S = T にできるか判定せよ
−T の末尾に ‘dream’ ‘dreamer’ ‘erase’ ‘eraser’ のいずれかを追加
2017/1/19 競技プログラミングについて 16
S = ‘erasedreamer’
‘erase’ → ’dreamer’ の順で追加する
可能
S = ‘dreamerer’
不可能
- 17. ABC049 C - 白昼夢 / Daydream 解法
追加される文字列は微妙に被っていて大変…
‘dream’ ‘dreamer’ ‘erase’ ‘eraser’
‘dreamer…’ → ‘dream’ + ‘erase’,’eraser’
→ ‘dreamer’ + ??
文字列 S を反転させると簡単になる!
−追加される文字列も反転 ‘maerd’ ‘remaerd’ ‘esare’ ‘resre’
−愚直に比較するだけで判定可能となる
2017/1/19 競技プログラミングについて 17
- 18. yukicoder No.415 ぴょん
𝑵個の足場が距離 1 の等間隔で並んでいる
−足場にはある足場を基準に 1 から 𝑁 までの番号が振られている
うさぎちゃんは足場 1 にいる
うさぎちゃんは次の行動を好きな回数できる
−距離が D 離れた足場にジャンプして移動する
足場はデリケートなので, 1度ジャンプしたもとの足場は消える
うさぎがジャンプできる最大の回数を求めよ
2017/1/19 競技プログラミングについて 18
- 20. yukicoder No.415 ぴょん 解説
(これは, 自分が作問してコンテストに出した問題です)
ジャンプは一方方向に, できるかぎり続けるのが最適
できなくなるタイミングを考える
−これは最初に足場 1 に移動するとき
−すなわち, 円環の長さの倍数と移動距離の倍数が最初に一致するところ
2017/1/19 競技プログラミングについて 20
- 21. yukicoder No.415 ぴょん 解説
これは N と D の最小公倍数 lcm(N, D) そのもの
これを D で割って 1 をひいた
𝑙𝑐𝑚 𝑁,𝐷
𝐷
− 1 が答えとなる
2017/1/19 競技プログラミングについて 21