アルゴリズム問題に効くPython小ネタ

今週末の Google Code Jam Japan 2011 の決勝に向けて練習でもしておきたい所ですが、時間がなかなか取れないので、代わりにテクニックを紹介するブログエントリを書くことにしました。(代わりになってない、という意見は却下です)

namedtuple

namedtuple は python の標準ライブラリとして同梱されているクラスの一つです。

続きを読む

Code Jam Japan 2011 報告

昨日書いた Google Code Jam Japan 2011 の予選が先程おわりました。
問題サイズに対する見積りがあまくて、最初の2問の Large を速攻で落とすという痛い失態をかましてしまい、3問目だけは慎重に解いてなんとか正解して本戦に残ることが出来ました。

Large は提出期限が切れた後も解き続け、予選終了後の演習モードで再提出してみたら、ちゃんと正解できましたので、本番もそのくらい慎重にやれ、ってことですかね。

とりあえず、(ちゃんと解いたんだぞ、という証明代わりに)全3問の解答と解説をこちらに貼っておきます。(あ、昨日貼ったテンプレートを使用しているので、実際に問題を解いているのは solve 関数の中だけですよ。)

あとで解いてみようと思っている人は、以下は読まないように注意!

(2011-10-02 追記: ちゃんとデキる人が書いてくれている解説を見つけたので、参考にする人はそちらをどうぞ → 不確定な Android Blog - Google Code Jam Japan 2011 予選終了 )

続きを読む

Google Code Jam Japan 2011 明日開催

ご無沙汰してます。Over80です。
最後にこのブログにエントリを書いたのは3月頭ですから、半年ぶりの更新になります。
その間の事に関しては、書くと愚痴が多くなってしまうのでやめておきますが、震災の影響はいろいろと大きかったことと、私は直接被災はしておらず無事であること、あと、震災に遭われた方々へお見舞い申しあげます、とだけは言っておきます。

さて、今日の本題は、明日に開催をひかえた Google Code Jam Japan 2011 と、それに向けた Python の自作テンプレートの紹介です。

Google Code Jam Japan 2011 とは?

簡単に言うと、競技プログラミングコンテストで、明日午後1時にWebで公開される問題(複数)に対して、それを解くプログラムを作成して提出すればポイントゲット。沢山、早く解いた人が勝ち。みたいなコンテストです。
問題は比較的典型的なアルゴリズム問題(たとえば「迷路の最短経路を答える」のような)で、Webから問題データ(たとえば「迷路を表現したテキストデータ」)をダウンロードでき、それを作ったプログラムで解いて、答えのデータをアップロードすることで回答になります。

類似のコンテストと比べると以下のような個性的な特徴があります。

  • 予選から決勝までオンラインで開催される。自分の慣れたPCで集中して解けば良い。
  • プログラミング言語や実行環境に(事実上)制限が無い。事務局や他の参加者が確認できるよう、フリーで実行環境が入手可能なもの、という制限があるだけで、VisualStudio も Express があるので OK となっている。あまつさえ、表計算ソフトのような物で解くことも認められている。("プログラム"の代わりに、そのソフトをどう使ったかを説明するテキストの提出が求められますが。)
  • 今回の Japan 2011 は、日本語で開催される。大抵の大会(通常の google code jamも含む)は英語で開催され、問題文も英語なので、読むのに時間がかかる所が最初からハンデだったりする。

詳しくは Google Code Jam Japan 2011 のサイト を参照してください。(私の説明には誤謬があるかもしれません。)

上位入賞者には賞金や景品がありますので、気楽に参加してみてはいかがでしょうか?

日本語の例題は既に Code Jam Japan のサイトに上がっていますし、英語で良ければ過去問はこちらにあります。試しに解いてみるだけでも勉強になるかもしれません。

Python のテンプレート

続きを読む

スマートフォンの機能を使いまくって目覚し時計を作ってみた

よっしゃ、ぎりぎりで間に合っ……って無い……だとっ……
すみません。遅刻しました m(_ _)m

ダウンロード → http://goo.gl/TBd0k


スマートフォンの機能を使いまくって目覚し時計を作ってみた - ニコニコ動画



動画投稿してから1週間も経ってますが、こちらのブログの方でも報告しときます。
以下、裏話など。

なぜこれを作った?

続きを読む

80's Auto Manner Mode: 放って置いても勝手にマナーモードに設定してくれるアプリ

あけましておめでとうございます。
年末年始はいかがでしたか?
私は久々にゆっくりと時間がとれたので、Android アプリなんぞ書いてみました。

メイン携帯だからこその悩み

去年末、私は auIS03 を購入しまして、スマホの1台持ち体制になったわけですが、いざ使ってみると微妙に不満が出てきました。

その1つが、「Volume+ キーが電源ボタンのすぐ横にあること」です。

使い終わって、画面を消そうとして電源ボタンを押す際に、間違ってボリュームキーも押してしまうことがあり、その場合、マナーモードが解除されてしまうのです。

私は普段、マナーモードを常時 ON にして携帯を使っていたので、この挙動のせいで、変な所で音を鳴らしてしまい、恥かしい思いをしてしまいました。


今回作成したのは、これを解決するためのアプリです。

続きを読む

IOSYSで売ってた安価なペンタブレットを Ubuntu Linux で使う

Kanvus Office54 v2


先日、秋葉原IOSYS にて、3000円ほどのペンタブレット(商品名は Kanvus Office 54 v2 かな?)を売っていたのをみかけ、使う予定も無いのに衝動買いしてしまいました。

この手のデバイスは大抵、Windows only か、せいぜい MAC に対応している程度で、Linux も正式に対応しているような物は皆無なので、基本は自分でなんとかする必要があります。

今日はこのペンタブを Ubuntu で使うための方法の紹介です。(他のペンタブや、その他、イロモノ USB デバイスを動作させたい人も、検索方法は参考になるかもしれません。)

まずはデバイス情報を調べて検索

続きを読む

近況報告とか

気付いたら今年もあと1ヶ月ほどになってしまいました。本当に月日が経つのは早いですね。

皆さんは今年の頭に立てた目標は達成できましたか? 私はまだ未達成です。 間に合うと良いのですが……。

さて、このブログの方も随分放置していて気にはなっていたのですが、まさか最終更新から4ヶ月も経っていたとは。ここ暫くは主に仕事で忙しくて精神的に余り余裕が無かった、というのもありますが、その間、暇が出来たら記事に纏めようと思っているネタも随分溜まってしまいました。

海外出張とかもあったので、その時のネタを書くのも良いかもしれませんが、数ヶ月も前の話をしてもアレなので、今日はとりあえずここ数日の近況報告のみでお茶を濁しておきます。

Make: Tokyo Meeting 06 に行ってきました

続きを読む