2010-02-12から1日間の記事一覧

深さ優先探索1回で強連結成分分解 C++

前回の続き.今回は強連結成分分解する. しかも,DFS1回だけ実行. アルゴリズムは非常にシンプル.そして,結構分かりやすいと思うのだが. アルゴリズムの解説等は以下が比較的分かりやすいと思う. http://www.ics.uci.edu/~eppstein/161/960220.html#sc…

OpenOffice.org 3.2

OpenOffice.org 3.2がリリースされていた.http://www.openoffice.org/dev_docs/features/3.2/アップデートしてみた. 起動が速くなってた. まだ,ほとんど使っていなから,なんとも.

今さらながらダイクストラを実装した@C++

Project Euler等で時々C++を使うのだが, いまだかつて,classを一度たりとも使っていないことに気がついた. まぁ,僕は「オブジェクト指向なんてくそくらえ」な立場なので問題ないといえば問題ないが.しかし,使えるに越したことはない. ということで練…

C++ かんすうないかんすう ない

C++ には関数内関数がないらしい. struct使えば,似非関数内関数は作れるが, この似非関数内関数は親関数の変数に触ることができない.例えば,以下のプログラムはコンパイルエラーになった. // test.cpp int main() { int c = 0; struct Func { void ope…

PKU では Runtime,UVa では Accepted.なにがなんだか.

問題は Partitioning for fun and profit. 雰囲気. 入力は自然数 m, n, k. m を n 個 の昇順な自然数に分割する分割を考える.分割の間に辞書式順序を入れたときの k 番目の分割を求める. 例えば,m = 5, n = 3, k = 1 なら,求める分割は [1, 1, 3]. …

最小全域木 クラスカル法

UnionFindさえあれば,結構簡単に実装できるのね. ただ,正しく動くかほとんど確認していないので,バグがあるかも. // disjoint_set.h #include <iostream> using namespace std; class UnionFind { private: int *root, *rank; // root < 0 のときはサイズの情報 p</iostream>…