naiの日記

ソフトウェアエンジニアから放射線科診断医にジョブチェンジしました。趣味のことを書きます。

2010-01-01から1年間の記事一覧

334. Sokoban

Sorobanの直後に投稿された問題で、問題名と内容を見てちょっと笑ってしまいました。 下から3ビット目をへし折るだけの簡単な問題ですが、42Bの投稿者で-5との論理積を取っているのは自分だけで、他の方はみな~4との論理積を取っていました。 この辺の書き方…

336. C style constants

チートくさいのでもう書いてしまいますが、38Bはsystem("perl")です。というか、perlの最短コードをそのままsystemの中に書いただけです。 これだけ単純な問題なので、execを許すならもっと縮むのではないかと思いましたが、自分はCとPerl以外は門外漢なので…

332. Soroban Fixed

終了しました。 ループカウンタをどのように設定するかが一番のポイントだったようです。 1・4・10回目のループは珠でなくそろばんの枠を出力しなければならないので、1・4・10回目が簡単な条件式で判定できなければなりません。 自分は1から2ずつ増やしてi=…

328. base convert

サークルの合宿やら試験やらでずっと更新できない状態が続いていましたが、漸く暇が出来ました。 328. base convert 一位のnnさんの解は凄いですね。無駄がありません。 再帰関数を作り逆順で出力する方法しか考えていなかったので、これには参りました。 自…

322. Substract from a Googol

私生活でいろいろあってしばらくゴルフから離れていましたが、とりあえず再開です。 322. Substract from a Googol 締め切り直前のSubmitすみません。なぜかいつも締め切りギリギリでのSubmitになってしまう…… 今回は途中寝落ちしてしまったこともあり、縮め…

314. Roman numeral

終了しました。 トップのinaniwaさんの解はなんと93B。 減算則のチェックに、直前の値を保存せず、合計値を表す変数sが現在の値aで割り切れるかどうかで判定しています。 なるほど、確かにaの値は通常は広義単調減少で、しかも過去の値はすべて現在の値の倍…

317. Multiplication Table

終了しました。 deadlineギリギリでの投稿、失礼しました。 (一応言っておきますと、隠し玉として温存していたわけでは決してありません)終了直前までは i;main(){for(;i-144;)printf("%3d%c",~(i++/12)*~(i%12),~i%12?32:10);}この68Bだったのですが、pri…

314. Roman numeral

実は今日は大学で英語一列の試験だったので、昨日いっぱいはGolfしないつもり……だったのですが、やはり次々と縮んでいく記録や自分のコードを見ているとGolfが止まらなくなってしまいました。まあ、いつも通りです。 (試験の出来がどうだったかは皆さんのご…

ICPC・UTPC

ICPC予選とUTPCに参加しました。 全体的にはブランクがあった割にはまずまずの成績となりましたが、問題文をよく読まないために解けなかったり解くのに時間がかかったりした問題が多かったです。 自分の落ち着きの無さを反映していますね……。 UTPCはどれだけ…

309. Not Random

まず、終了後にPerlで同じコードを二回Submitしてしまい申し訳ございません。 擬似乱数の生成規則に基づいて文字列を出力させる問題です。 私は数字をいじくり回している間に偶然気付きましたが、やはり参加者は少なかったようです。 言語によってはそもそも…

307. Zigzag

終了しました。inaniwaさんの93Bは、入力をまったく行わない乱数コードでした。 出力文字が与えられているのでscanfやら何やらは必須とばかり思っていたのですが、38-n/2という抜け道があったとは。 これはまったく思いつきませんでした。

307. Wrap Words FIXED

終了しました。94Bの解。 char*p;main(n,s){for(n=atoi(gets(s));gets(p=s);puts())for(;p

305. Factorization corrected

終了しました。終了直前までnnさんとほぼ同じ80Bのコードだったのですが、最終日に飲み屋の入り口でなんとなく考えていたらprintfの第三引数を工夫することで1B縮めることを閃きました。そこからは飲みの席でコーディング→テスト→(携帯電話で)サブミットと…

307. Wrap Words FIXED

文字列を指定された文字数で折り返す問題。 スペース2つがタブ文字に置き換わっているので再出題となりましたが、PerlのText::Wrapを用いるとFIXEDでない方と同じ解答が得られるので、あながち出題ミスともいえないようです。 //もちろん、C Golferとしては…

305. Factorization corrected

a+b=xかつab=yとなるようなa,b(a≦b)を探す問題。 aとbがともに整数になることに優しさを感じますwいかにも通らなさそうな80BをSubmitしてみたところ、通ってしまいました。 Outputがπであることについさっき気づいた。

301. Palindromic prime

http://golf.shinh.org/p.rb?Palindromic+prime 終了しました。私のアルゴリズムはnnさんと同じですね。 k,n,p;main(i){for(;p=++i<2e4;k%=i-p||printf("%d\n",i))for(n=i;n?k=k*10+n%10:k%++p;n/=10);}nが非0の間は10進数で逆にした数字kを作り、nが0になっ…

301. Palindromic prime

ひさびさの更新となりました。現在90Bで3人が並んでいます。 //90Bを通したらあっという間に2人に並ばれたでござる Statsも実行時間も同じぐらいなので、同じアルゴリズムを用いているのかな? 僕が使っているのは若干直感に反するアルゴリズムです。とり…

293.char pyramid

http://golf.shinh.org/p.rb?char+pyramid (ようやく)終了しました。Cのトップはnnさんと私で、ともに89B。 Statisticsが結構違ったのが気になりましたが、まあだいたい同じコードだろうと思って見たら全然違いました。 nnさん i,j;main(n,b){for(b+=n=rea…

296.ehangc

http://golf.shinh.org/p.rb?ehangc終了しました。初期にSubmitした空白3つの70Bは以下のコードです。 #define $*s^=s[strlen(s)-1] char s[];main(){for(;gets(s);puts())$^=$;}ここからstrlen(s)-1を変数に代入して69B。これが最短だと思っていましたが、n…

実践的プログラミング

大学のプログラミング講義を受けてきました。一年ほどプログラミング系の問題にほとんど触れていないだけで、実に驚くほどコーディング力が落ちるものですね。PKU 1207(http://acm.pku.edu.cn/JudgeOnline/problem?id=1207)とAOJ 0009(http://rose.u-aizu.ac…

297. Half Sierpinski

http://golf.shinh.org/p.rb?Half+Sierpinski トップのkikさんが59Bなのを見て、何かいいアルゴリズムがあるのだろうと決めてかかりました。 実際その通りで、ある点が'#'か' 'なのかは、非常に簡潔なアルゴリズムで記述できます。これだけのアルゴリズムで…

299. Magic Square

http://golf.shinh.org/p.rb?Magic+square 魔方陣を生成する問題。 Sampleを見れば生成規則は一目瞭然ですが、コードで書くとなると難しいです。 アルゴリズムを見直して大幅に縮みましたが、トップのnotさんは104Bで届きません。方針は同じだと思うのですが…

291.Ghost leg solver

http://golf.shinh.org/p.rb?Ghost+leg+solver コード公開になりました。notさんのコードを見ればわかるように、a,bがint型のとき a^=b^=a^=b でaとbの値の交換ができます。 やっていることはa+=b;b=a-b;a-=b;と大差ないのですが、「2回行うと元に戻る」と…

ブログ始めてみました

周りの人に触発されて、ブログを書くことにしました。主にShort Coding(あなごる)のことなどを綴ると思います。