KMCの例会講座で用いたスライドを一部編集したものです。 ビット演算を組み合わせたトリッキーな方法で様々な操作を高速に行う方法を紹介します。

プログラムの実行に掛かる時間を把握しておくのは、プログラミングを行う上で基本的な注意点です。今回は、計算量のオーダーについて学びながら、TopCoderのMedium問題を考えてみましょう。 プログラムの実行時間 業務としてプログラミングをされている方には釈迦に説法かもしれませんが、プログラムの実行に掛かる時間を把握しておくのは、プログラミングを行う上で基本的な注意点です。そしてこれは、TopCoderなどのコンテストでプログラムを組む際にもよく当てはまります。通常、こうしたことは感覚的に理解している方がほとんどだと思いますが、具体的にどれくらいのループを回すと何秒掛かる、といった基準を持っている人は少ないのではないでしょうか? 非常に基本的なことですが、プログラムの実行時間に関して再確認しておきたいと思います。 TopCoderの制限に関して TopCoderでは、実行時間およびメモリ使
全世界で20万人を超える凄腕のコーダーが集うプログラミングコンテスト「TopCoder」。本稿では、アルゴリズム部門のSRMで取り上げられる問題を考えながら、論理的思考力およびコーディングのテクニックを養っていきます。 はじめに はじめまして。高橋直大です。本連載「最強最速アルゴリズマー養成講座」では、全世界で20万人を超える凄腕のコーダーが集うプログラミングコンテスト「TopCoder」について、そこで出題される数学・アルゴリズムのパズルを考えることで、コーディングのテクニックおよび論理的思考力を磨くことを目的に開始するものです。ここで扱う技法は主にアルゴリズムのそれですが、その根底にはロジカルな思考術が存在します。そうした能力を養いたい方にとって少しでも役に立てれば幸いです。 なお、本稿は必要に応じてコーディング例も紹介しますが、TopCoderで出題される問題の中から比較的やさしい問
今まではSRMにしか出場していなかったのですが、何となくMarathonMatchにも手を出してみました。 MarathonMatch47のお題は暗号文作りです。 N×Nマスの格子の中に文字が書かれています。このマスに各行各列それぞれH個を超えない範囲で印をつけていきます。印をつけ終えたら、左から右、上から下の順に印をつけた文字を拾い上げていきます。最後まで終わったら90度回転し、また同じように文字を拾い上げていきます。これを4回繰り返し、拾い上げた文字を文字列としてみます。この文字列の中にあらかじめ与えられている辞書の中の単語がどれくらい含まれているかがスコアとなります。また、文字列中で単語が連続していれば連続しているほどスコアは高くなります。未使用の文字が多いとスコアは低くなります。 自分が初めにとった方法は単純モンテカルロでした。適当に穴を空けてスコアをチェック。しかし、これだと全く
17:19 08/11/27 TopCoder Code Jam の練習に……と思ってしばらく前から TopCoder のSRMに参加してたのですが、 せっかくなので cafelier@SRM に記録をつけることにしました。 どういう試行錯誤をしながら提出した時のコードにいたったのかを、 できるだけ詳細にメモろうと思っています。 426以前のは記憶から掘り起こして書いたのでちょい大ざっぱですが。 これまで何回かここで書いたような整然とした考え方を本当に自分がしているかいうと、 してないよなー、と薄々思ってしまっているので、じゃあどういう風にやっているんだろうかと。 自分のふり見て我がふり直す。 20:26 08/11/24 論文 PLAN-X 2009 通ったみたいです。ばんざい。 ただでさえD論まったく間に合う気がしないのに、camera ready版なんて作ってる時間が… オートマトン
21:25 08/10/27 論文 の締め切り終わったら頑張った自分へのご褒美(笑)であれとこれとそれをやる時間をとるぞー! ……みたいなことを思っていたはずなのに、いざ提出し終わると気が抜けて何一つやる気がでない問題。 困った困った。 ナイチル たくさん人がいらしてる今のうちに 「ナイトメア☆チルドレン」新装版 面白いよみんな買おうぜ! などと書いてみる。 自分のマンガの趣味はわりと平凡だと思ってて、 流行ってるマンガは大抵好きだし自分の好きなのはだいたい流行ってるし。 なのになぜだか藤野もやむ作品だけは唯一の例外で、とっても不思議でならない。 100回くらいアニメ化されてて然るべきだと思う。 何回か書いてますがとにかく最終話が好きで、 そこまでのシナリオが一気に集まって一つ一つのセリフが3倍の重みを持つように収斂していく幕引き。 あれは良い。 17:12 08/10/24 アルゴリズム
Topcoder is a crowdsourcing marketplace that connects businesses with hard-to-find expertise. The Topcoder Community includes more than one million of the world’s top designers, developers, data scientists, and algorithmists. Global enterprises and startups alike use Topcoder to accelerate innovation, solve challenging problems, and tap into specialized skills on demand.
今年は @ohkura 君と2人で参加していました。チーム名は Mox Caml です。タップするとコンビネーターが出てきます。 まず、problem description をちゃんと読んでいなかったので、example に書いてある関数適用の方法と再帰呼び出しの方法に無駄に悩んでいたことは反省すべき。ohkura くんが自力で気づいたときは無駄に感動しあい、後ほどおもいっきり脱力しました。 1日目は simulator を書きながら attack や dec の使い方を考えていました。関数適用回数制限をチェックしない AI で invalid になりまくっていたが、理由を長い間理解できず。 2日目には attack も help をホイミにするのも慣れて結構上位に来る。このころの AI は最初に help ホイミを無限ループでうって HP 65535 のスロットでただただ敵を殴るもので
もしあなたが美しい(あるいはトリッキーな)コードが飛び交う世界を知りたいと願うならそれはTopCoderに参加することで容易に実現することができる。このTopCoderに参加している数少ない日本人で、生涯プログラマーを宣言する人物にTopCoderの魅力を聞いた。 世にハッカーと呼ばれる人は数多く存在すれど、日常生活においてわたしたちがそうした人たちのコーディングを目の当たりにする機会はまれである。 しかし、美しい(あるいはトリッキーな)コードが飛び交う世界を知りたいと願うならそれは容易に実現することができる。そこには国籍、年齢、過去の栄光……そのいずれもが何の意味も持たない、コードのみが支配する世界が広がっている。 そんな世界の1つとしてTopCoderが挙げられる。世界中からトップレベルのプログラマーが参加するプログラミングコンテストとして知る人ぞ知るTopCoder。日本ではいまひと
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く