SRM 555

久々にSRMに参加しました。


easy: 139.49

最初greedyで解こうとしてたがまずい気がしたので全探索に変更(DPじゃなくてもなんとかなった) greedyだとアウトらしかったので危なかった。

(・ワ・) < TGOやるです?


medium: Open

方針は立ったもののnCkをDPで出す方法を忘れていて時間が間に合わず死。素因数分解してどーのこーのしようとしましたが実装力が足りなかったのです。

hard: -
見てすらいない(^q^)

Rate: 1854 -> 1677
あばばばばば(AAry

精進します

  • 余談

どこぞに球団持ってる会社が主催してるTopcoder Onsightという、皆で集まってSRMやろうぜ! みたいなイベントがありまして今回はそれに行ってきてました。TLで名前見たことあるような人が多い印象でしたが、中には留学生っぽい人もいたり。普段通りのコミュ障を発揮しておりましたが、snukeと久々に会ったりk_operafanさんからidの近況聞いたりとかできました。

Tシャツをかけたジャンケン大会ではrngさんにリクエストした上でジャンケンをするという謎ルールのもとで激戦が行われました。結果勝ち残ってTシャツ獲得しました。ありがとうございます。

ECL on Windows by VC++

eclというのはCommon Lisp処理系のうちの一つで、小さなスタンドアロンバイナリを作ることに向いているとかなんとか。こいつをwindowsでまともに動くようにするまでに丸一日以上かかった。

 

まずは処理系のインストール。自分はvc++でソースからコンパイルしていましたが、sourceforgeにwindows用のバイナリが転がっていました。こっちを使った方がはるかに楽です。 

バイナリ: http://sourceforge.net/projects/ecls/files/ecls/12.7/ 

 

 これでまあ処理系インストールできたかなと思ったのですが、ここからが茨の道だったわけで。

あちらこちらのページに書いてあるようにcompile-fileやらc:build-programを試してみるのですがどうもバイトコードまでにしかコンパイルされない。(eclはバイトコードコンパイラとCへのトランスレータを持ち合わせるぽい)  これはvcでコンパイルしたからか?と思いmingwでeclをコンパイルすることを試みるも上手くいかず(これで数時間飛んだ)

 ここで停滞してたわけですが公式に答えがのってました。:

* In Windows ECL comes with bytecodes compiler by default, because C
compilers are normally not avaiable. Unfortunately several
libraries out there are not prepared for this. If you plan to use
quicklisp and have a C compiler accessible to ECL, you may use
(ext:install-c-compiler) to switch back to the Lisp-to-C compiler. 

ECL on WindowsはデフォでCコンパイラがオフになってるらしい。なんてややこしいことを(憤怒

以下Cコンパイラをオンにするための手順

  1. vc++をインストールしておく
  2. initスクリプトに
    (ext:install-c-compiler)
    (setf c::*compile-in-constants* t)

    を追加しておく

これでちゃんとCにコンパイルしてくれるようになります。尚vc++関連のファイルにパスが通ってないといけないので環境変数を弄るかVisual Studio コマンドプロンプトからeclを実行する必要があるらしいです。

まあこれでECLがまともに動くようになるはずです。多分。

ICPC2012国内予選参加記

teamname: dimsum

team member: wasabiz Φ zeptometer

 

ICPCの国内予選に参加してきました。今年が初参加です。 

 

・開始前

会場には自分が最初に到着。wasabizもしばらくして到着。

…そしてΦが来ない。 メールしても返信ない上に携帯の電池が死んだので一時は本当にどうなることかと。qnighyの携帯を借りて電話してやっと連絡とれて「ごめん10分くらい遅れる」と言われる。(準備に手間取ってたらしい)

 

・本番

解いた順番 

A->B->C->D

Bまではすんなり行けたもののC、D、Fをenbugして長期間死亡。その後なんとかCとDを通し、Eを解くが時間及ばず終了。

 

・結果

 25位(予選敗退)

 UTでは9位/12チームというなんとも残念な結果に。ちなみに会場内では最下位でした。怖っ

 

・反省

初参加だったので反省することはいろいろあったような

  • 紙ドキュメント等事前に打合せしていた分は準備してたのがしっかり役に 立った。
  • enbugしてしまったことが最大の敗因。修練足りてない。後ちゃんとコンパイルオプションに-Wallつけるようにします。 
  • チーム内の意思疎通もちょっとぎくしゃくしていたように思うのでチーム練習もっとしとくべき だったか。

 

・結論

 来年もがんばる