2009-01-01から1ヶ月間の記事一覧
timer =: 6!:2 NB. 実行時間が計れるよ! fib =: ($:@-&2 + $:@:]) NB. ふつうにフィボナッチ数を求める fib"0 (i.18) 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 fibx =: ($:@-&2 + $:@:]) M. NB. M.をつけるだけでメモ化しちゃう fibx"0 (…
情報オリンピックに備えてC++での挑戦。
2/8(情報オリンピック本選)に向けての特訓に入る
ソース長いので
if(end < start || end - start <= 1) return false; ここの条件式 end - start <= 1 どうみても対象の範囲が2要素のときfalse返します。本当にありがとうございました。というわけで該当記事を訂正しておいた。
TopCoderでnext_permutationゲーな問題が出ると途端にC++が有利になって、C#だとコーディング時間的に厳しいので、C#で実装しておく。パフォーマンスなんて知りません。2009/1/23 バグ修正&TopCoder SRM 433 Div 1 Easy MagicWordsでVerified using System;…
(* 再帰的な階乗の定義(F#) *) let rec fact = function 0 -> 1 | n -> n * fact (n-1) コンパイルしてデコンパイル↓ public static int fact(int _arg1) { switch (_arg1) { case 0: return 1; } return (_arg1 * fact(_arg1 - 1)); } ま さ に 直 訳 (* 末…
たとえばF#で階乗をつぎみたいに実装したとするよね↓ let fact n res = if n = 0 then res else fact (n-1) (n*res) 末尾再帰たんモエスなんだけど、末尾再帰って最適化されちゃうんだよね?特にSchemeとかだと。たとえばさっきの階乗をC風に書けば int fact…
ちくしょおおおおおおおおおおおおおおおおおおおおお泣いて・・・いいですか・・・。1046 -> 1096でも上がったwwwwwwww
やたーHard解けたよー
問題 いつ、どこから、どこまでエレベータを利用するかという情報が与えられるから、エレベータが最善の動きをしたときに全員を運び終えるまでにかかる時間はどれくらいですか。 解 人が全部で5人(!)しか居ないから全部試す。 using System; using System.T…
問題 マインスイーパ的ゲームで、最初の一個が爆弾なら負け、最初の一個が爆弾でなくその周囲にも爆弾が存在しないなら勝ちとする。ゲームフィールドが与えられるので勝率を求めなさい。 解 やるだけ。これは解き慣れるしかないぜ。 using System; using Sys…
っぽく、というかこの間のF#版をそのまま書いただけだけどw def length(l): if l == []: return 0 else: return 1 + length(l[1:]) def reverse(l): if l == []: return [] else: return reverse(l[1:]) + [l[0]] def mergesort(comp, l): def merge(l1, l2…
問題 子、母、男のDNAっぽいのが与えられるので、男が子の父親かどうか判定してねっていう。母からのDNAを半分、男からのDNAを半分ずつそれぞれ子が引き継いでいる場合は父親だと思うよ。 解 男と子の間の一致数が半分を超えて、かつ男と母どちらでもないDNA…
問題 コンテストの結果をソートしてください。 解 めんどい。やるだけ。 using System; using System.Text; using System.Text.RegularExpressions; using System.Collections; using System.Collections.Generic; public class Data : IComparable { public…
問題 条件にマッチする文字列はどれ?っていう。 解 適当に変換して調べる。 using System; using System.Text; using System.Text.RegularExpressions; using System.Collections; using System.Collections.Generic; public class CheatCode { public int[…
問題 問題長すぎだろ・・・jk・・・ 解 問題読めれば問題はない。 using System; using System.Text; using System.Text.RegularExpressions; using System.Collections; using System.Collections.Generic; public class Inventory { public int monthlyO…
って自分でも思い始めたのでこれからは「続きを読む」を使うことにしました。
これから一からプログラミングを覚えようと考えています。様々な言語がありますが、どれを覚えるべきでしょうか?Python・・・。
これはひどいいやこれはひどいいやこ れ は ひ ど いというわけでTCHS09おわり^^いいもん!SRMがんばるもん!あ、レーティングは 1395 -> 1326 です^^
ソース↓ let rec mergesort cmp l = let rec merge l1 l2 res = match (l1, l2) with ([], []) -> res | ([], l) | (l, []) -> (List.rev l) @ res | (m::ms, n::ns) -> if (cmp m n) < 1 then merge ms l2 (m::res) else merge l1 ns (n::res) in let split…
問題 ちょっと変わった言語処理系実装してね。言語仕様まで全部書くとめんどくさい。 解 ハイパーやるだけ。最初MISMATCHの意味を取り違えてて色々なんかアレ。ソース汚物。 using System; using System.Text; using System.Text.RegularExpressions; using …
問題 あんまり読めてない。Example頼りの問題解釈なので説明できない。 解 数がちっちゃいので全部やった。 using System; using System.Text; using System.Text.RegularExpressions; using System.Collections; using System.Collections.Generic; public …
問題 数列が与えられる。これをマージソートした時に比較の回数は何回になりますか。 解 テラやるだけwwww using System; using System.Text; using System.Text.RegularExpressions; using System.Collections; using System.Collections.Generic; publ…
問題 円に正n角形を内接させて、その正n角形の周を円周としたときの円周率の近似を求めなさい。 解 最初余弦定理がどうたらこうたらであばばばばばばってなって、結局精度が悪くてTest落ちた。その後某IRCの助けをいただいて理解。 23:07 (JAPLJ) PI = 180° …
インフルエンザに罹った
問題 あるキャンバスに縦のストライプを塗る。ストライプの柄が与えられるので、最小で何回キャンバスに描けば模様が完成するか。 解 俺の嫁ですとも。ええ。動的計画法です。 using System; using System.Text; using System.Text.RegularExpressions; usin…
問題 ある自然数n(2 ≦ n ≦ 30)について、n進法で数を表記したとき、ある一桁の数kの倍数は全てその桁を合計するとkの倍数になるようなkを全て求めなさい。たとえば10進法において、 159 * 3 = 477, 4+7+7 = 15 = 3 * 5 なので3が該当する。 解 全部やればい…
問題 単語一覧が与えられるので、与えられた文字列の適切な位置にスペースを挟んで、もとの単語の並びを復元しなさい。ただし複数の解が存在するなら AMBIGUOUS! を、解が存在しないなら IMPOSSIBLE! を返しなさい。 解 最初に必殺総当り再帰で解いて、時間…