AtCoder
解くに至ったもの(3問)
ARC:065C/066C/067C
ARC065C
daydream(かっこいい)
与えられた文字列がdream,dreamer,erase,eraserの4要素で構成されているか否かを判定する問題
愚直に前から見ていこうとすると、dreamまで見たとき、次に続く単語が'er'であれば、'dreamer'で終わってんのか、それとも'eraser'と続くのかが判断できなくて困る
ということで、文字列を逆から見ていく方針で行く
文字列を逆にして、maerd,remaerd,esare,resareで構成されているかを判断すればよい
これは、ある単語の終わりが別の単語の始まりと一致していないために採用できる
与えられた文字列sを逆にするには、
t = s[::-1]
とすればよい
ARC067C
思いつかなかった
階乗は math.factorial(N) でN!を求められる
カウントは初期値1、i = 2~1001で調べて、N!がiで割り切れる間は割り続け、カウントを増やす+N!をiで割るを繰り返し、割り切れなくなったらカウントを答えに掛ける、iを1増やす、カウントを1に戻す、を繰り返せばよい
1000程度であれば30msくらいで終わってくれる
解けなかったもの
ARC:072C/074C
ARC072C
リストの値を更新して、それまでの和が0にならない&前項までの和と異なるようにする問題
前から見てけばええやろと思って場合分けするも、最初が0スタートの場合とかの特殊な場合分けにまごついたり想定解と違うなどで結局ACできず
偶数番目の項までの和を奇数にするか偶数にするかで二通り分けてやるというのが答えだった また後でやります
ARC074C
チョコを三つに分けてmax-minを最小にする問題 つまり三つに均等に分けようねという話
横方向の長方形で三つに分けるのと、横方向×1縦方向×2でT字になるように分けるにパターンをやればよい そしてなるべく均等に分けるのがよいことも利用する
また後でやります
今日は調子が悪かった 気分も沈んでました 明日は今日よりはやる