Hatena::Grouptopcoder

minus9dの記録

2014-11-01

Code Runner 2014 予選Aに参加

| 23:58 | Code Runner 2014 予選Aに参加 - minus9dの記録 を含むブックマーク はてなブックマーク - Code Runner 2014 予選Aに参加 - minus9dの記録

チームラボとキャリフルが主催するCODE RUNNER 2014 予選Aに参加しました。自分は47位で、なんとか予選突破圏内でした(社会人なので資格がありませんが)。自分が経験する初めてのタイプのコンテストで新鮮だったので、簡単にメモしておきます。

問題

AからDからなる50文字の文字列を作って高得点を目指す

戦略
  • ランダムな長さ50の文字列をたくさん作って投げる
  • 点数の高かった上位n件について、長さ8の部分文字列を抽出して点数を調べる
  • 長さ8の文字列のうち点数の高い上位m件から、ランダムに6つ選び、ランダムな2文字をランダムに挿入して50文字の文字列を生成。たくさん試す
使ったツールなど
  • Pythonを使用
  • itertoolsが便利
  • 文字列と点数の組を辞書として持ち、適宜pickleで保存。cacheとして使った
感想と反省
  • 点数の高い長さ8の文字列を結合するときに、先頭と末尾が一致する文字列を結合できるようにしたかったが間に合わず
  • 点数の高い長さ8の文字列の弾が足りなかった
  • スクリプトでHTTP 400の対策を組み込むべきだった
    • 2並列以上でスクリプトを動かすと例外で死ぬ)
    • 乱数を投げ続けるスクリプトを動かしつつ、手元で改善したスクリプトを動かせる環境があるとよかった

2012-08-19

Kyuride Kagamiz Programming Contest easy

| 09:27 | Kyuride Kagamiz Programming Contest easy - minus9dの記録 を含むブックマーク はてなブックマーク - Kyuride Kagamiz Programming Contest easy - minus9dの記録

夏の思い出にKyuride Kagamiz Programming Contestに参加。もちろんeasyで。

結果はooo--で15位でした。

A - ハンバーガー

負の数を出力しないよう注意するくらい。

http://k2pc-easy.contest.atcoder.jp/submissions/38136

B - ビットマニア

まず、7つのレーンのそれぞれについて、ノートの最大連続数を数える。

最大連続数の小さいレーンから順番に、そのレーンを弾き切ることのできる指のうち、もっとも縦連耐性の小さい指を順に割り当てていく。使える指が先になくなったらノーミスクリアは不可。

http://k2pc-easy.contest.atcoder.jp/submissions/38232

C - 紅茶

ペア(m, n)と、ペアの位置とを互いに変換する関数を作って真っ当に解いた。もっといい方法があるような気もしたけど分からなかった。

http://k2pc-easy.contest.atcoder.jp/submissions/38408

D - 虫歯

分からずスキップ。

E - お気に入りの数2

有向グラフの各ノードを最低一回通って元のノードに帰ってくる経路のうち、最短の経路を求める問題になりそうだと思ったけど解き方分からず。簡単な規則があるのかとも思ったけど見つけられず。