第3回HOJコンテスト感想

  • 結果.3位でした〜.Rankingよりは低いですが,みなさんが普段さぼっているだけということなのでしょうww
    得意問題が少ないとこんなもんですよ〜.実力はちゃんと出し切りましたので.
  • 参加した皆様おつかれさまでした〜.上位の特にpastaさんzephoriaさんおめでとうございます!
    他にも割と最近やってる方々が健闘していたような.あと開催のKtyaさんお疲れ様でした〜♪
  • とはいえやっぱり悔いは多かったコンテスト.LEVEL10はあと少し時間があれば解けた
    気がするし自明に短縮をさぼっている問題も多いし,時間配分を失敗して中途半端な感じに?
    0850, 0853, 0854とかで実行時間が(自分の環境だと)結構長めな解を作って実行眺めてたり
    していたのが良くなかったw1B改善できるかなーとか言って一瞬で5分10分捨ててたなー.
    今回のように,トップ周辺が全Solve前提じゃない場合はもっと上手く立ち回らないと.

  • コンテスト中のmas解のバイト数

    0847[Level 1 - Small Windmill]
    まぁ普通.

  • [13B]b:ssssl, a:sblba, a


  • 0848[Level 2 - Megane]
    タイトルの意味を把握したのはコンテスト1か月以上後ですwww
    四角が2つ.1辺の長さは4.経路をどうするか.
    「下→上」だと6倍処理みたいなことをしないといけなくて
    なんとなく嫌だと考えていると「右→左」を思いつく.
    とりあえず純粋な2倍関数で書いてみた.

  • [18B]w(X):XX, w(w(w(w(w(srsl))l)ll)ll)

  • 流石にXXllで縮む.16B.

  • [16B]w(X):XXll, w(w(w(w(w(w(sr))w())r)))


  • 0849[Level 3 - Herbert Kart]
    なぞる系.後回しにしてたら時間がなくなって割と適当.

  • [30B]t:srs, a:tlts, b:sarsslslt, salsrtlasbb


  • 0850[Level 4 - Four balls]
    対角線を引いた正方形みたいなのを4つ.長さ12を作りたい.直接作ってもよいけど
    2倍関数と3倍関数両方持ち出すのは筋が悪そうなので再帰で.
    長さ6の棒を思うことで6倍関数だけで直接作る解もあったようです. まぁさくっと書いて終了.

  • [22B]w(X):XrX, a(X):w(w(w(w(Xr))r))a(sXw(s)l), a(r)


  • 0851[Level 5 - Many Squares]
    悪戦苦闘した挙句,ぐちゃぐちゃにSolveしました.
    とりあえず部分的に回収してみる.

  • [テストコード]w(X):XXXXr, p:sw(sr)sls, w(w(w(p))w(pppr)r)

  • この回収漏れの規則を考えるも,ssrsl的なパーツが頭から離れず上手くいかない.
    残った部分を愚直に回収したものを適当に提出して諦める.

  • [35B]w(X):XXXXr, p:sw(sr)sls, w(w(sslpprprrp)w(w(p))w(pppr))

  • 想定解は綺麗でした.もっと「Many Squares」のタイトルをよく考えるべきだったか….
    灰色マスの配置に見事に誘導されてしまった感じですね.a(X):XXXXr,a(a(●))の形を
    いくつか試そうとしただけでも全然違ったはず.
    0852[Level 6 - Windmills]
    こういう風にスカスカになっていると無駄に経路選択に自信がなくなるけど
    ぬりつぶしちゃえばOKという問題でした.とりあえずパーツ作って増やしてみる.

  • [28B]a(X,T):sa(sX,T-1)rXlslXr, c:a(,6)r, d:ccccrd, d

  • 再利用できるよう数値関数を作りなおし.

  • [27B]a(X,Y,T):Ya(YX,Y,T-1)rXlYlXr, a(,a(a(,s,6)l,,4)l,4)

  • 数値に入れて増やすのを色々試しているうちにかなり時間を消耗してしまったので27Bで放置.
    0853[Level 7 - Kousaten]
    棒を成長させて自然と中央に戻るような経路選択で〜.
    微細な距離調整とか向き調整とか長さ調整にかなり時間かかった.
    実行ものんびり眺めていたら結構時間かかって
    この問題だけで1時間近く消費してしまったかもしれない.ちょっと戦略失敗.
    でも一応単独Best解に到達できたので良かった.最初に作った29B解.

  • [29B]t:a(ll,13), a(X,T):XXa(rslsX,T-1), b(X):XltXtb(sX), b()

  • Xtが1つになるように調整すると縮む.

  • [27B]a(X,T):XXa(rslsX,T-1), b(X):lXXsb(Xs), b(a(ll,13))

  • のはずが,コンテスト中に提出していた解がこれ:

  • [28B]
    t:
    a(X,T):XXa(rslsX,T-1)
    b(X):lXXsb(Xs)
    b(a(ll,13))

  • 謎の1行目.29Bの名残wwこんなミスなんでしたんだろうww
    tの呪いと言われているとかなんとか.
    0854[Level 8 - Snow crystal]
    よく分からないし時間ないので10分くらい考えて飛ばしたw
    0855[Level 9 - 59 shou tasu amari]
    簡単そうなので真っ先にSolveした.

  • [31B]a(X,Y,Z):a(X-Y,Y,sZ)a(X-1,Y,sZ)rZrrZrsa(59,Y+1,s), a(59,1,)


  • でも計算間違ってた.これって「(58の商+余り)+1」ですよねwwwww
    正しくやると30Bになるのにこの31Bで放置してしまうダメっぷりw

  • [30B]a(X,Y,Z):a(X-Y,Y,sZ)a(X-1,Y,sZ)rZrrZrsa(60,Y+1,), a(60,1,)


  • 0856[Level 10 - Boss of this contest!!]
    BossということでSolveもいないし難しそうなので終盤まで放置してしまったけど
    これに粘着していれば1人1000ptsでウハウハな展開もあったかもしれない.
    難コンテストはRate基準だと難問ゲーになりやすそうですね.賛否は別として.
    コンテスト中にはあと1歩まで行っていたのでちょっと悔しい1問.
    素直な正方形で回収できない斜めラインを移動経路にしました.

  • [22B]a(X):srssXXXXsla(Xslssr), sa(l)

  • 最後の方は,初期位置違いを回避する方法を色々考えていました.
    「1:3の移動」を「1:2が2つ分」と考え始めたのがラスト5分.
    色々あがいたけどタイムアップ〜〜.よく考えると,初期位置を正当化して
    1:3の移動なら,パターンの境目がくっきり浮かび上がるはずで,そうすると
    灰色マスをよけて自然に移動すれば「ssrssrslsl」しかありえないね!!
    初期位置の正当化よりも,「初期位置は特殊→特殊な初項的な何か」という発想
    で重点的に考えてしまった感じでした. 戻る inserted by FC2 system