Hatena::Grouptopcoder

cafelier@SRM

cafelier のSRM参加記録です。コンテスト中に考えてたことを執拗に全部書き残すとどうなるだろうかという試み本番中にこういうコードが書きたかったなあ、という後で書いた反省コードを書き残す試み

スパムが来たのでしばらくコメント欄をはてなユーザ限定にしています、すみません、

|

2008-12-24

SRM431 Div1

| 13:15 | はてなブックマーク -  SRM431 Div1 - cafelier@SRM

SRM431 の成績・ソース (要ログイン) : AC/-/- : 問題文はちゃんと読みましょう

続きを読む

SRM431 Div1 500

| 14:53 | はてなブックマーク -  SRM431 Div1 500 - cafelier@SRM

やっぱり電車の待ち時間で解けるくらい何の変哲もないDPだった…;;

続きを読む

SRM431 1000

| 11:15 | はてなブックマーク -  SRM431 1000 - cafelier@SRM

あまりの美しくなさに死にそう。RMQなしで書けますよねこれ多分。まあいいや

続きを読む

トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/cafelier/20081224

2008-12-21

SRM430 Div1

| 04:26 | はてなブックマーク -  SRM430 Div1 - cafelier@SRM

SRM430 の成績・ソース (要ログイン) : AC/AC/TLE : ダメとほぼ確信しててsubmitするのはやめた方がいいのかな

続きを読む

SRM430 Div1 1000 (2008/12/21)

| 10:40 | はてなブックマーク -  SRM430 Div1 1000 (2008/12/21) - cafelier@SRM

他の方の参戦記を参考に解いた。そうか、半分にわければ2^18は全通り試せるのか。なるほどなあ。尺取りメソッドというのは毎回二分探索するかわりに左と右から少しずつずらしていけばO(NlogN)がO(N)で済むという手のことかな。

あとこれ、人数合わせる制約なしの一般のPARTITIONにも O(N 2^(N/2)) くらいで使えるなー。勉強になった

続きを読む

トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/cafelier/20081221

2008-12-03

TZTester をどうにかする

| 23:40 | はてなブックマーク -  TZTester をどうにかする - cafelier@SRM

TZTesterというプラグインを使っててだいぶ不満がたまってきたので適当に改造。

改造してから id:nitoyonさんの の存在に気づいた!うわあああああああこれをそのまま使えばよかったー

いちおうこんなん

ソースはこちら

※2009/05/20 : nitoyonさんのテストコード生成を参考にして大幅修正&&naoya_tさんのtimer,double誤差チェックを取り入れてみたバージョン、というか今使ってるもの → jar とソースはこちら

  • 空配列でエラーが出ないようにした
  • テストケース増やしやすくした
    • パラメタごとで改行
    • パラメタ変数名を ArgN じゃなくて問題に設定されてるやつにするようにした。返値はRetVal
    • テストケース関数を増やしたら自動でそれを呼び出したりケース番号出力したりするようにtemplateでごにょごにょ
  • その代わりテストケースを個別に実行しにくくなってるけど「N番以降を実行」はできるので、懸案のケースは最後に置けばいいことにする
  • テストコードはグローバルに置くようにした
    • 毎回インスタンス作る
    • $TESTCODE$ に main まで含めて全部突っ込むので既存のテンプレと互換性全然ない
int Test_(Case_<0>) {
	int dayLength = 4; 
	int yearLength = 1461; 
	int RetVal = 4; 
	return verify_case(RetVal, DesignCalendar().shortestPeriod(dayLength, yearLength)); }
int Test_(Case_<1>) {
	int dayLength = 86400; 
	int yearLength = 31558150; 
	int RetVal = 1728; 
	return verify_case(RetVal, DesignCalendar().shortestPeriod(dayLength, yearLength)); }

こういうテストコードが出ます。さらに Test_(Case_<2>) という関数を定義したらテストランナーが勝手に呼び出す雰囲気

2008-12-02

SRM428 Div1

| 23:44 | はてなブックマーク -  SRM428 Div1 - cafelier@SRM

SRM428 の成績・ソース (要ログイン) : AC/AC/- : 読んでて反省することしか見つからない思考ログ

続きを読む

SRM428 Div1 1000 (2008/12/12)

| 14:28 | はてなブックマーク -  SRM428 Div1 1000 (2008/12/12) - cafelier@SRM

埋め込んでない埋め込んでないよ!(ということにしておく)

O(n * 3^n) の NegaMax を無理矢理押し通した。最悪ケース "XXXXXXXXXXXXXXXX" で 1.85s。

これが想定解と言うことはないと思うので解説待ち…

続きを読む

トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/cafelier/20081202

2008-11-26

SRM427 Div1

| 22:26 | はてなブックマーク -  SRM427 Div1 - cafelier@SRM

SRM427 の成績・ソース (要ログイン) : AC/AC/AC : はじめて全完できた。嬉しい

続きを読む

トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/cafelier/20081126
|

presented by cafelier/k.inaba under CC0