ToDo:
http://d.hatena.ne.jp/ku-ma-me/20100112/p1
s=*$< x=y=0 y+=1until x=/S/=~s[y] q=[[a=s,x,y]] (a,x,y=q.shift a=a.map &:dup a[y][x]=?$ 4.times{|k|s[j=-(k^1)/2+1+y][i=-k/2+1+x]!=?*&&(s[j][i]=?*;q<<[a,i,j])} )while/G/=~a*'' puts a
あんまマジメにやってないんだけど 適当に解いてて一応勝ってる (181B) ぽいので。
はじっこに壁があるのを仮定してるのはちょっとずるかったりするんかな。 あと S の位置が 1,1 というのを仮定してよかったらだいぶラクなんだけどなあ。 なんかそれを仮定してそうなコードをどっかで見た気がしたんだ
(00:43)
http://john.freml.in/codegolf-cheating
できそうと教えてもらったけど、 まぁ誰もやらんだろうと思ってたんだけど、やってくれた。
というわけで共有メモリとメッセージキューは殺したんだけど、 semaphore は mono が使うらしい。 アホかーと思ったんだけど、 まぁ数をギリギリの数にしておいた。
でもまぁ気持ち悪いし、 一個でも semaphore 作られたら C# のプログラムが動かなくなるので、 後で semaphore はクリアするようにしておこうと思う。 で、 Ruby は syscall 呼ばんと getsem とか無いかなぁ…とかいう。
(00:48)
s=*$< x=y=0 y+=1until x=/S/=~s[y] q=[a=s,x,y] (a,i,j,*q=q a=a.map &:dup a[j][i]=9*4.times{|k|q+=[a,x,y]if s[y=-~k%3-1+j][x=-k/2+1+i]!=s[y][x]=?*})while/G/=~a*'' puts a
まだまだ縮みそうではある
(01:04)
s=*$< x=y=0 y+=1until x=/S/=~s[y] q=[a=s,x,y] (a,i,j,*q=q a=*a*'' a[j][i]=9*4.times{|k|q+=[a,x,y]if s[y=-~k%3-1+j][x=-k/2+1+i]!=s[y][x]=?*})while/G/=~a*'' puts a
よく考えるとどうせ 1.9 じゃ動かんしなぁ
(01:08)
q=a=gets(p),~/S/ (a,i,*q=q a*=1 a[i]=9*4.times{|x|q+=[a,x]if$_[x=-~x%3*-~~/$/-~/$/+-x/2+i]!=$_[x]=?*})while/G/=~a puts a
golf data structure is always linear は金言だなぁ…
しかしなんかむしろコードが間違ってたらはずかしいな
(01:32)
q=gets(p)*1,~/S/ (a,i,*q=q a[i]<?S&&a[i]=?$ 4.times{|x|q+=[a*1,x]if$_[x=-~x%3*-~~/$/-~/$/+-x/2+i]!=$_[x]=?*})while/G/ puts a
どうしても S を塗らない処理が大変だなぁ。 G を塗らないのはむしろ短くなった気がするんだけど…
(02:31)
前 | 2010年 1月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。
おうおう。正規表現に取り付かれて普通の BFS を試そうともしませんでした。
細かいですが、S とか G とかは書き潰しちゃダメだと思います。そのへんにしょうもなく苦労してた。
うわ本当ですね。むしろ潰さんと駄目だと思ってました。どうしたもんかなー
4.times{...} は
[1,u=1+~/$/,-1,-u].map{|x|q+=[a*1,x]if$_[x+=i]!=$_[x]=?*}
ではどうですか?
おおいいですね。数秘術を無駄に使いたがってしまうのは悪いクセです。
[1,u= ~/$/,2*~u,u].map{|x|q+=[a*1,i]if$_[i+=x]!=$_[i]=?*}
の方向で縮まんかなーと思ったのですが同着でした。他も ksk さんがやればもっと縮みそうですね。