yukicoder No.336 門松列列
やっと出来た…(1問前よりはマシ)
問題概要
長さNの1〜Nの数字が1つずつある数列でどの隣り合った3つの数字を選んでも門松列になっている数列は何通りあるか。1e9+7で割った余りを求めよ。
続きを読むyukicoder No.333〜335
RMQのセグメントツリー実装でバグが合ったらしく、かなりの時間悩んだ。
まだ336解いてませんが、取り敢えずここでコード載せておきます。
No.333 門松列を数え上げ
問題概要
左端、真ん中の門松の長さが与えられるので、右の門松で門松列を満たす長さの数を答えよ。
続きを読むCodeforces Round #339 (Div. 2)
Codeforces Round #338 (Div. 2)
結構悲惨だったけど、Good Byeよりマシか。
A. Bulbs
問題概要
手元にいくつかのスイッチがあり、各スイッチはいくつかのランプにつながっている。最初は全部のランプが消えているとき、
手元にあるスイッチを押して全部のランプをつけることができるか判定せよ。
Problem - A - Codeforces
AtCoder Begginer Contest 032
最近、ABCの難易度の低下が激しいと思ったけど、前回よりは難しくなった?
A - 高橋君と青木君の好きな数
問題概要
n以上の整数で、aでもbでも割れる最小の整数を答えよ。
http://abc032.contest.atcoder.jp/tasks/abc032_a
解説
取り敢えずaでもbでも割れるってことは求める整数はaとbの最小公倍数の倍数。
自分は互除法を使ってLCM(a,b)=a*b/GCD(a,b)で出しましたが、aとbの制限が緩いので1から順に試して、aでもbでも割り切れた時、でもOKです。
続きを読むyukicoder No.320 眠れない夜に
今年最後の問題かなぁ…(冬休みの課題の息抜きに)
問題
解法
まず、早めに間違えると大きな誤差を生むことが分かる。その様子を見てみる。例えばa3で間違えると、
a3=1(-1)、a4=2(-1)、a5=3(-2)、a6=5(-3)、…
と、元の値からどの位離れていくかがフィボナッチ数列になる。
よって、予めフィボナッチ数列の80項まで調べておき(ギリギリC++のlong longで収まる。不安だったのでJavaでBigInteger使って確かめた。)、どの位足りないかを見るためm=an-mとする。
a3に間違えた時から順に仮定していき、変化量がm以下ならmから引いてあげる。実際はフィボナッチ数列のa(n-2)から値を下げるようループを回してあげる。
Codeforces Round #337 (Div. 2):C問題補足
こんな記事が。 pakapa104.hatenablog.com 今日少したまたまその問題について思考していたので、少し言及してみようかと思いました。
続きを読む