2007-05-01から1ヶ月間の記事一覧

SRM350

だから桁あふれと境界条件に注意しろと何度言(ry寝坊した? そんなもん言い訳になるか。

PHP談義

404 Blog Not Found: そろそろPHPに関して一言いっとくか一定以上のレベルのプログラマにとっては、確かにツマラナイ言語だと思います。*1 独特の言語機能みたいなものがないと、プログラミングそのものに面白みを見いだしづらいですよね。足りないところば…

π計算

π計算といっても並行計算モデルの話ではなく円周率の計算ですが。π―πの計算アルキメデスから現代まで作者: 竹之内脩,伊藤隆出版社/メーカー: 共立出版発売日: 2007/03/22メディア: 単行本 クリック: 7回この商品を含むブログ (1件) を見る立ち読みして衝動買…

MD5 ご臨終。

APOPのぜい弱性で見えてきたMD5の「ご臨終」いろんな悲鳴が聞こえてきそう。

TCP/IP を復習。

いつのまにか第四版出てたのか。マスタリングTCP/IP 入門編 第4版作者: 竹下隆史,村山公保,荒井透,苅田幸雄出版社/メーカー: オーム社発売日: 2007/02/24メディア: 大型本購入: 14人 クリック: 231回この商品を含むブログ (510件) を見る実は私はIP以下の層…

SRM349

教訓:桁あふれ怖い。 やっちまった・・・。250pointer は場合分けしたら終わり。なのに long longの上限を激しく勘違いして自滅。 「64bit か…ふむ、2^60 と4bitだな。2^60 ≒ 10^18 だから 4 * 10^18 だ。ギリギリだ! しかもunsignedの引き算は負にならないか…

std::adjacent_difference

C++

ここの説明が微妙に間違っていたので注意。std::adjacent_difference(ii, ii+4, result); の処理内容は 階差。配列で書くとこんな計算 result[0] = 0; resutl[1] = ii[1] - ii[0]; result[2] = ii[2] - ii[1]; result[3] = ii[3] - ii[2]; ここで第一要素(r…

IPSC 2007

IPSC 2007が終わりました。国内一位キター。*1Internet Problem Solving Contest の名の通り、単にプログラミングスキルの枠を超え、もっと一般的な問題解決能力が問われている感じでした。解答方法はコードではなく与えられた問題の入力に対する出力をその…

これはひどい・・・

UVa

http://acm.uva.es/problemset/v109/10924.html問題を注意深く読んでみると、素数のExampleに 1 が…! そりゃねーだろw たまにこういう本質と全く関係のないしょーもない罠が仕掛けてあるから困る。 問題文を読むのにも油断は禁物ということを確認。

= による初期化

C++

Hoge hoge = ...; という形での初期化は、まずデフォルトコンストラクタによってオブジェクトが構築され、それに対して代入演算子で代入を行うのではなく、引数つきのコンストラクタが呼び出される。 class Hoge { public: Hoge(): n(0) {} Hoge(const int a…

演算子オーバーロードの優先

C++

同じシグネチャの演算子オーバーロードをメンバ関数とfriend関数で行った場合 どちらが優先されるのか気になったので調べてみました。 #include <iostream> using namespace std; class Hoge { public: bool operator==(const int a) { return true; } friend bool ope</iostream>…

binder

C++

std::bind1st, std::bind2nd(をカリー化したもの)の型はこんなかんじ bind1st: binary_function<T1, T2, R> -> T1 -> unary_function<T2, R> bind2nd: binary_function<T1, T2, R> -> T2 -> unary_function<T1, R>OCamlで書くと bind1st = fun f x -> fun y -> f x y bind2nd = fun f y -> fun </t1,></t1,></t2,></t1,>…

std::nth_elemtnt

C++

std::nth_elemtnt の挙動を説明するのに nth_element(first, middle, last); は partial_sort(first, middle+1, last); random_shuffle(first, middle); を線形時間でやる、というのはどうか。実装はこのへんかな。Median of Medians は覚えておこう。

引数

C++

std::priority_queue は、テンプレート引数とコンストラクタの引数の順序に不整合があって気持ち悪い。テンプレート引数は、『要素の型・実装に使うコンテナの型・比較ファンクタクラス』の順 template <class T, class Container = vector<T>, class Compare = less<typename Container::value_type> > class priority_queue; コン</typename></class>…

SRM347

TopCoder の SRM に初めて参加しました。結果はこんな感じ。(部屋内で2位・DIV2で11位) 開始直後に友達から電話がくるというハプニングがありましたが、なんとか次回からDIV1でできるようです。わーい。 ちなみにタクシーの問題(1000pt)はさっぱりわかりませ…