298.1

深夜に更新しようとすると日付が前の日、という状況は設定いじれば解消するらしい。実際に動いているかどうかは次のSRMまで分からないけど。

250

与えられた整数がフィボナッチ数列の何番目に出てくるか答えよ、という問題。出現しないものは、直前に出現するものと直後に出現するものとの間に等間隔に並ぶとする。


取り敢えず前後のフィボナッチ数列の値を計算して、どの辺にいるかを答えるだけ。

500

複数個の行列が与えられるので、すべての積のうち、一番要素数の多いものの要素数を答えよ、という問題。


AxBのシーケンスについて、出てくるAとBが完全一致するか、高々1個違うときだけすべての積が計算できる。完全一致するケースでは、一番大きいやつから開始して、一番大きいやつで終わる。(全部の掛け算の鎖ができたときに、必ず先頭と末尾は一致するはずなので、ループができ、好きなところで切れるので、最大のやつで切る。)1個違う場合はそれから開始して、1個違うやつで終了する。


取り敢えずどちらのケースでも基本となる鎖を適当に作る。最初と最後が一致していればいい。後は使ってない要素のうち、既に作ったものと同じ大きさの値を持つやつを使って、ループを作る。ループができるなら、既にあるものに結合してやればいい。うまくくっつかない要素があれば掛け算できないということである。最終的に完成したなら、その行列のサイズが答え。


想定解はなんかDPするんだと思う。ルーチンあんまり綺麗に書けなかったし。

1000

見てない。続きは明日。