2013/10/03

SRM421 Div1 500 解説


10月2日のSRM練習会で、Mediumに苦戦したので備忘録的な解説を残しておきます。


2013/09/19

後期の目標、指針

常に意識を高く持ち、背筋を伸ばして生きていく所存であるのは間違いないですが、達成すべき目標を据えておいたほうがモチベーションを保ちやすいので、ここに掲げておきます。

1.TopCoderでイエローになる。
2.後期の授業で扱うSchemeに誠心誠意取り組み、関数型言語を嫌いにならない。
3.定期的にリアルの競プロ練習会に参加、または開催し、KMC勢とも顔見知りになる。
4.数学と英語に全力を出し、他はそつなく効率よくこなす。
5.サークルの活動を疎かにしない。
6.秋冬の洋服は、ユニクロ以外を取り入れる。
7.バランスの良い食事と適度な運動を意識し、風邪をひかないようにする。

以上です。
個人的には、1、3、6、の難易度が飛び抜けていると感じています。

2013/09/17

SRM591 Div2 1000 の解説

今回のDiv2Hardは、正答者が6人/790人のなかなかハードな問題でした。
回答方針をDPに据えるところまで辿り着く人は多かったようですが、メモ化の仕方やその利用方法になかなか工夫が必要で、実装は容易ではありません。
以下に、正解者の回答をもとに理解した内容をアウトプットしていきます。


2013/09/15

数値配列を右にならした時の最大値

与えられた数値配列を右にならした時の最大値の求め方をまとめる。
ここで言う「右にならす」というのは、添字の小さい方から大きい方へのみ値を移動させて平均化する事を言う。例えば、a[0]=4, a[1]=2ならばa[0]=a[1]=3と平均化できるが、a[0]=2, a[1]=4である場合は値を移動できない…という操作のことである。