2007-01-01から1年間の記事一覧

演算子

C++

?= なんてものがあったのか。 deprecated だけど。 x ?= はその逆。 int a = 10, b = 10, c = 10, d = 10; a ?= 1; d >?= 100; cout << a << endl << b << endl << c << endl << d << endl; 1 10 10 100 まぁ、普通は x = min(x,y); や x = max(x,y); を使う…

iteration.

飲み物だから太らない - 帯に短し襷に長し 配列を頭からとお尻から同時に辿りたい時の話。 0 origin の array[n - i - 1] は array[(n-1) - i] であるのに対し 1 origin の array[n - i + 1] は array[n - (i-1)] なのが面白いですよね。 あっちを立てればこ…

ICPCって

なんで3人なのでしょうか? 理由はあるのでしょうか?

SRM355

今気づいた… Heron の公式を書き間違えてたorz

ますだ

javascriptを理解するためのたった2つの大切なこと内容はいいとして、増田にこういう技術ネタを書くという行為はそれ自体意味があるのだと思う。例えばJavaScriptについて何か気づいたこととか思いついたらきっとブログに書くんだけど、普段からJavaScriptに…

すべらない一発ネタというのは難しい注文だ

Google -> 表示設定 表示言語を 'Hacker' にしてみましょう。 うん、あまり笑えなかった。変な言語をいろいろ試すのも良いですが、あまり調子に乗ると元に戻すのにえらい苦労します(笑

ニコニコブックマーク

Web

http://www.nicob.jp/このネタは絶対やると思った。 問題はどれだけ洗練されたインターフェースを提供できるかだと思う。 現状では、コメント対象はキャプチャされた画像で、その任意の位置にコメントを貼れるというもの。 自分としてはもうちょっとリッチな…

蟹。

Canny http://canny.sourceforge.net/Ruby版Smarty。 次にWebアプリ作るときはコレ使ってみよう。

output integers

入力関数に引き続き、出力関数を自作してみました。 非負整数の出力に特化しています。型の拡張(unsigned や long long)とか符号拡張は容易。 // 10進表記で出力し改行 void puti(int n) { if (!n) { fwrite("0\n", 1, 2, stdout); return; } char str[11]…

ACM ICPC:: UFRN Qualification Contest

UVa

UVa のコンテストに参加。 日本時間だと深夜2時〜朝7時という強行スケジュールw なにやらトラブっていたようで、開始後しばらく問題が見られなかった。 にもかかわらず、既に解き始めている人もいたりして混乱。 今回の反省。 日付の形式を勘違い。 DD/MM/Y…

SRM 353

毎度のことながらアホ連発。最悪のタイプミス long long dx = p1.x = p2.x; // p1.x - p2.x と書きたかった。 これで 500点あぼん。 なぜ気づかない!? >自分 メモ SRMが始まる時に Sambaのログインをしてない状態だとCodeProcessor で coLinux 上にファイ…

GCJ

coLinux に GCJ を入れてみた。 Javaなのにネイティブコードを吐いてくれるらしい。 試しにHelloWorldを動かしてみる。 public class Test { public static void main(String[] args) { System.out.println("Hello, world!!"); } } こんぱいるー、が通らない…

勘違いunit

C#は voidじゃなくてunit型を使うのかー、と思ったら unit型じゃなくてuint型だった。。 # D言語もだった。OCaml厨乙乙。

SRM352

チャレンジ失敗が響いて転落。ぎゃふん。 500pointerが難しく、250pointerをいかに速く解くかという感じの問題セットでした。 コーディングスピード大事。 他の人のコードでよく見る FileEditやらTZTesterって何だろうと思って調べてみたところ、かなりの便…

Firemacs

http://www.mew.org/~kazu/proj/firemacs/Firefox上でEmacs-likeなキー操作を可能にするAdd-on。 XKeymacs より明らかに便利なのは、viewモードとeditモードで設定が分けられる点。例えば、viewモードだと C-a で全選択なのが、editモードだと行頭移動になる…

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)はさっぱりわかりませ…