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

アジア予選行ってきました。

ACM

去年は1問しか解けないという無能さを存分に発揮したので、 今年は2問を目標に参加してきましたー 無駄に文がダラダラと長くなった。

v2.007

D

わーいD言語にopStarが来たー くろーじゃくんも嬉しいなっと ACM/ICPCアジア予選後に知って早く遊びてーとうずうずしてました。

Two Dice of A sides

http://golf.shinh.org/p.rb?Two+Dice+of+A+sides id:letterさんマジでスゲー。 2byteの差からしてアルゴリズムが違うと踏んでたけどやぱりか。 変数を2個使う方法は考えていたけど、このやりかたは思いつかなかった。とりあえず、id:letterさんに負けてるけ…

~(~0 << n)

bit

自分の好きなビット演算をメモしておく。 を計算するときってほぼ無条件に(1 *1。 が、(1 残念なのは両式共にバイト数が同じだということ。 しかし、諦めてはいけません! 定数~0が変数に格納されている時は後者はさらに短縮できます! a=~0としたとき a << …

そんなわけで例の本が出ました。Short Coding ~職人達の技法~作者: Ozy,やねうらお出版社/メーカー: 毎日コミュニケーションズ発売日: 2007/08/09メディア: 単行本(ソフトカバー)購入: 5人 クリック: 306回この商品を含むブログ (69件) を見るで、それにつ…

PKU1023

PKU

うむむ、http://www.4dm.org/ShortCoding/index.php?POJ1023を見てビット演算で楽勝じゃんとか思って適当に書き書き。 しかし、逆に長くなってしまったorz うーん、ビット演算を使える形に持っていくのにバイト数を結構使ってしまう。 問題の詳しい内容は上…

そういえば

ショートコーディング本が発売されるらしい。id:Ozy:20070727 これは買わなきゃ損だよね!

D言語でのゴルフはコンパイラ等のバグとの戦い std.c.stdlib.d long strtol(char *,char **,int); /// ditto uint strtoul(char *,char **,int); /// dittostrtoulは正しいけどstrtolは間違ってる。 そんなわけでstrtolは使うな危険。というかなぜピンポイン…

例の奴

スタート地点にすらたどり着かなかったぜ。

例の奴

そろそろ開始時間か......

3250

PKU

id:Ozy:20070711#p2から。 とりあえず、問題を単純に実装してみる。 c,s[80001],j; main(v){ gets(s); for(*s=8e9;~scanf("%d",&v);c+=j,s[++j]=v) while(s[j]<=v)--j; printf("%u",c); }最初の*s=8e9は番兵。 あとは生きている数字をsに突っ込んでいって、…

ACM国内予選やてきた。

ACM

今回はあまり慌てずノンビリ行こうという方針でやりました。 問題A 意味もなくmultisetとaccumulateを使って解いてみた。 なんなく完成。 問題B 秒数分の配列を適当に1に埋める方針で通した。 たぶん、国内模擬予選B問題の講評の影響を多く受けてる。 問題C …

模擬予選

ACM

これに 有効なWikiNameではありません - ACM-ICPC Japanese Alumni Group 参加してみた。 といってもチームで集まる時間なさげなので、 自宅で布団で横になりながら解いた。 うむ、コードは寝ながら書くのがやはり一番楽だな。 布団万歳。 ま、微妙な結果だ…

D2.0

D

なんか色々追加されてるー

例の奴

なんか適当に あなたの関数型指数は 0.221716828646598 です。 正が関数型、負が手続き型です。ふむー自分って関数型な人だったのかー。手続き系の言語しか知らないけど

sevilwm

sevilwm(id:shinichiro_h:20070425)にclick and focus modeがー!! タッチパッドに当たってフォーカスが予想外のトコに行って、 混乱した事がよくあったので微妙に嬉しい機能。 ちなみにsevilwmは自分が今まで使ったwmのなかで一番使いやすかったので常用して…

sequenceよりmapM idのほうが短いということに今気づいた。

追記

気が向いて適当にWebを探すとやっぱり同じような話題が大量に。 しかも自分の実装長冗長。まぁいいか。

イテレータ

外部イテレータを使って内部イテレータは作れるけど、 内部イテレータを使って外部イテレータは作れない。 ...と今まで思ってたけど、普通に出来るな。どこでそう勘違いしてたんだろう俺? class Iterator def initialize(it) cont = lambda do|ret| it.each…

PKU3191

PKU

id:Ozy:20070228の問題に適当に挑戦。

そういえば

D

D言語のはてなグループ(http://dprogramming.g.hatena.ne.jp/)が出来たみたいなので、 自分のD言語ネタはこれからはそちらで書くことにしてみました(http://dprogramming.g.hatena.ne.jp/kurimura/) まぁどうでもいいですがー

invert case.c

shinhさんとOzyさんの41Bってどうやってるのか分からない。 普通に書くと main(c){while(read(0,&c,1))putchar(c^32);} で42Bしか出来なかった...うむむ、未熟。 とりあえず普通に書くのを諦めると40Bには出来た。

とりあえず、あなごるで書いたコードを適当にペタペタ。

sort characters.c id:Ozy:20070208でqsortの戻り値を使えることを知った。 もとのコードは文字列埋め込みだったけど、 結果としてstrcmpと同じバイト数だし、こっちの方がブラウザでは見やすいので、 ここではstrcmpを採用。 _[];strcmp();main(){puts(qsor…

lambda?

D

D言語の無名関数って皆さんご存知ですか? これって便利っちゃあ便利なんですけど、 1行程度の関数を書くときに一々関数の引数の型書いたり、 {return hoge;}()のreturnって書くの面倒だったり色々不便です。 そんなわけで関数リテラルを簡易に書けた気分に…

v1.005

D

あ、あほだー。あほがおるー。 Walter氏はv1.00になっても暴走っぷりは変わらなそうで大安心。 個人的には安定より混沌のほうが好きだしね。 しかし、まぁ変態な機能を投入してきたなぁ。 とりあえずid:kurimura:20070126とかが完全にゴミと化したあたりに素…

あなごる

最近http://shinh.org:81/で遊んでます。 test.rb orzとか,delete_blank_line.diとか、 色々アホなことして楽しんでます。 前者はともかく後者は、 人様のサーバーに意図的に負荷を掛けるコードを送ってました。 だってD言語のコンパイルが早すぎで唯一の入…

文字列からシンボル取りたい。

D

文字列からシンボルがほしいときがたまにあります。 たとえば a = 2; b = 3; assert(u!("a + b = #{a+b}") == "a + b = 5"); みたいな物を作りたいときとか。 というか今日の更新はそんなのを作ろうとして、あまりにめんどくて挫折した残骸だったり が、そん…

g++拡張

g++のキモい拡張のひとつにa >? b というのがあります a > b ? a : b の省略形ですね。 代入もついでにやるa >?= bもあります。 gccでこれが出来ないのはかなーり(´・ω・`)ショボーンです。 fmax,fminを大量に使用する場合はg++のほうが短くなるかもしれませんね。…

tie

D

絶対誰かが既に書いてそうな気がするboost::tieっぽい奴。 import std.bind : Tuple , tuple; import std.typetuple : TypeTuple; template add_pointer(T){alias T*add_pointer;} template map(alias F){alias TypeTuple!() map;} template map(alias F,T..…

const構造体のメンバ変数がconstにならない問題

D

struct Point{int x,y;} const Point p = {0,0}; const x = p.x;//error! を解決しないと構造体をtemplateに渡しても旨みがないのは言うまでもない。