Problem 0750 - Big rice field

prev | next

 
AuthorLimit
snuke255
 

関連

 

コメント

最新の10件を表示しています。 コメントページを参照

  • こう考えろとか助言もらえると嬉しいです。 35B

f(X):rd(XrrX)ls g(X,Y):f(X)g(sX,Y-1)f(X) d(X):XX d(d(d(d(sg(,4)r))l)) -- SA9I 2011-09-18 (日) 23:41:17

  • 〜想定解〜 g(G):GrG f(F):g(F)sg(F) x:f(f(f())) g(g(g(g(slxxxls))l)) 縮んでも全くおかしくないです。 ちょっと長めでbyte数分かれそうな問題を・・・という魂胆の問題でした。 -- snuke 2011-09-18 (日) 23:46:35
  • 最初に作ったきり更新できなかった31Bコード: w(X):XXXXr a(X,Y,T):Ya(sX,lw(XllX)s,T-1)Y w(w(sa(,,5)r)) 材料を作ってそれを増やすだけの単純なコードです. -- mas 2011-09-18 (日) 23:52:00
  • a(X,Z,Y):Za(sXs,srXXl,Y-1)Z b(X):XXXX b(b(a(rr,,5)sr)l) そんなパスありですかー -- zephoria 2011-09-18 (日) 23:53:25
  • 他に考えたこと: w(X):XrXlslXrX と定義して,「sw(w(s))s」とすると,短いバイト数で良さげな材料を作れるのですが,コンテスト時間内には上手く短縮に結び付けられませんでした. -- mas 2011-09-18 (日) 23:54:31
  • f(X,Y):q(srXXl,f(sXs,Y-1)) q(X,Y):XYX q(q(q(q(f(rr,4)sr,),)r,),) 分かれるものですね. -- shinike 2011-09-19 (月) 00:07:33
  • > SA9Iさん 経路選択は標準的だと思います. 実はそのコードは,1テクニックで3B縮みます: g(X,P,Y):Pg(sX,rd(XrrX)ls,Y-1)P d(X):XX d(d(d(d(sg(,,5)r))l))

f(X)と置いたものを,他変数を使って文字で置いていることを除いてほぼ同様です.この「他変数を使い文字で置く」方法は(再帰でも)重要なので覚えておくといいです.(続く) -- mas 2011-09-19 (月) 00:56:33

  • > SA9Iさん 数値引数が4から5に代わっている理由とかも理解しておくといいかも.他変数で文字で置くと,出来あがるタイミングが1ずれるんですよね.

なお,こうやって書き変えた32Bコードは僕が下に投稿した31Bコードとほぼ同様です.2倍関数の代わりに4倍関数を使い(この書き換えではバイト数不変),4倍関数に方向転換を織り交ぜて短縮しています. -- mas 2011-09-19 (月) 01:00:25

  • e(A):AA f(A):e(e(e(e(se(AslAl)e(e(ss))l))l))f(srslA) f() コンテスト中の30B解です。eを4回繰り返しにすれば29Bになります。 -- nadsuki 2011-09-19 (月) 06:22:45
  • !この経路選択は面白いですね なるほど・・・ -- snuke 2011-09-19 (月) 09:15:28
お名前:

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-02-08 (土) 12:00:02 (1537d)