2012/04/29(Sun)Google Code Jam Round1A 参加記
前回Qualに通過したので、Google Code Jam Round1Aに参加。
問題 http://code.google.com/codejam/contest/1645485/dashboard
スコア http://code.google.com/codejam/contest/1645485/scoreboard
問題文はCreative Commons Attribution Licenseらしいので、
概要を日本語に超訳したものを、続きを読む以下に書いた。*1
ラウンドの結果から言うと、A, Bのlargeまで正解。Cは出せず。
oooo-- 53点 849位 でR2へはギリギリ通過という感じ。
Bのlargeは正直不安だったけど、通ってよかったね、という感じ。
個人的には、この問題内容なら、もうちょっとがんばれてもいいよなーと思う順位。
ooo-o- の52点ではR2進出にならないのが怖いところ。うん、R2もがんばるし。
なんか、Googleは貪欲法好きですね。前のGCJJでも出てた気がするし。
僕も貪欲法好きなので、貪欲法が使える問題はもっと出るといいですね。
以下、参加記録。
今回はコード貼り付けはなしで……。だって恥ずかしい//
どうせ誰も読まないし、僕も誰かに読んでもらおうと思って書いてないし。
ここにあるしね。
2012/04/25(Wed)apache 2.4.1 に mod_mono 2.10 で error: 'unixd_config' undeclared
makeできなかった。
apache 2.4 から .h 側の定義が変わったらしい。
mod_mono.c を何カ所かいじってmakeできた。
参考にさせていただいた!
http://www.yazin.info/blog/archives/2012/0406_171642.html
unixd_config を ap_unixd_config にかえて、
conn_rec::remote_addr を conn_rec::client_addr にかえて
conn_rec::remote_ip を conn_rec::client_ip にかえた。
あと他にも変わってるかもしれないけどとりあえずmakeできたので見てない。
次のmonoでしれっと直るのはたぶんそうなのだろうが、
さしあたり、mod_ なんとかのmakeで困っている人が、
このページを見つければいいよということで残しておく。
2012/04/17(Tue)僕の .vimrc と .screenrc は、ここで進化していく(むしろgit使え
こういうのが便利とかあったら教えてください!
直接関係ないけど、コピペしたときに行番号がつかないようにするのってどうやるんだろう。
数字を画像で用意する! なるほど。そうじゃなくて。
# .bashrc # cygwin ## auto start screen ## if $STY is not set... if [ -z "$STY" ]; then screen -dR fi ## share history between screen sessions. function share_history { history -a history -c history -r } PROMPT_COMMAND='share_history' shopt -u histappend export HISTSIZE=200000 export HISTFILESIZE=2000000 export HISTCONTROL=ignoredups ## exclude short command from history export HISTIGNORE=?:??:???:exit:logout export PS1="\\[\\e]0;\\w\\a\\]\\n[\\[\\e[36m\\]\\D{%m-%d %H:%M:%S}\\[\\e[0m\\]] \\[\\e[32m\\]\\u@\\h \\[\\e[33m\\]\\w\\[\\e[0m\\]\\n$ "
# .vimrc syntax on set smartindent set number set backspace=2 set laststatus=2 set mouse=a set tabstop=8 set shiftwidth=4 set expandtab set wildmenu set ruler set statusline=%<%f\\ %m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%l,%c%V%8P set showcmd set incsearch set hlsearch set timeoutlen=250 inoremap ;; <ESC>
# .screenrc autodetach on startup_message off defbce "on" term xterm-color shelltitle 'bash' defscrollback 3000 hardstatus on hardstatus string "%?%h%:%t (screen #%n on %H)%?" caption always "%{= wb}[%02c] %-Lw%40L>%{=b bw}%n%f %t %{= wb}%+Lw %{= wb}%=@%H[$LANG] (%l)" altscreen on vbell off
2012/04/15(Sun)Google Code Jam 2012 Qualに参加して60点を取ったよ!
問題: http://code.google.com/codejam/contest/1460488/dashboard
A 謎言語 Googlerese
Googlerese は、アルファベットを1対1で置き換えた新言語です。
たとえば、"a zoo"は"y qee"になります。
Gppglerese 表現が与えられるので元に戻してください。
この置換表はテストケースごとに変わったりしません。
謎問題というか斬新というか。
問題文中のヒントとサンプルインプットから推測すればよいのね。
q->z だけわからなかったので加えた。
2012/04/01(Sun)C# で BigInteger
とりあえず10進数で2300桁ぐらい扱える全然BigじゃないBigInt。負の値は扱えない。
256のとこを大きくしたら扱える桁数が増える。
割り算と剰余演算子作るのめんどくさくて作ってないけど、
たいてい必要になるのってその辺なんだよなー。もじゅろ10億7とかさー。
というわけで、longのもじゅろだけはとれるよーにしといた。
実戦で使える速度が出るかどうかは未検証。
まぁでもそういう問題は、たぶん、計算量的に無理なようにできてるでしょうね。
2012/04/01(Sun)C# で 桁ごとに進数が違うインクリメントする機械
C# で 桁ごとに進数が違うインクリメントする機械
たとえば、素因数分解したときに 2^0 * 3^1 * 5^4 * 7^2 とかってなったときに、全部の約数を列挙したい時用。
2012/04/01(Sun)C# で next_permutation を使いたいので
わざわざこういうものを再生産しないといけないところにC#の不便さを感じる。
今日の250が落ちたのはこいつがバグってたせい……ぐぅ。
2012/04/01(Sun)C# で 素数表を得る。エラトステネスのふるい
素数表を得る
class PrimeTable { public List<int> Primes = new List<int>(); public bool[] IsPrime; public PrimeTable(int max) { IsPrime = new bool[max + 1]; for (int i = 2; i <= max; i++) IsPrime[i] = true; for (int i = 2; i <= max; i++) if (IsPrime[i]) { Primes.Add(i); for (int j = i * 2; j <= max; j += i) IsPrime[j] = false; } } } public class Program { static void Main() { foreach (var p in new PrimeTable(100).Primes) Console.WriteLine(p); } }