2009-09-01から1ヶ月間の記事一覧

参照はconst ?

http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml に参照はconstで使うように.って書いてあった. 理由はたしか,意味はポインタなのに,構文は値だから,だったような. いわれてみれば,そのとおり. でも読みにくよね.

一般グラフのマッチング(C++)

http://www.google.co.jp/url?sa=t&source=web&ct=res&cd=2&url=http%3A%2F%2Fwww.amazon.co.jp%2F%25E7%25B5%2584%25E5%2590%2588%25E3%2581%259B%25E6%259C%2580%25E9%2581%25A9%25E5%258C%2596-%25E7%2590%2586%25E8%25AB%2596%25E3%2581%25A8%25E3%2582%…

Problem 257

Problem 257 - Project Euler 三角形の問題なんだが,それを忘れてしまうほど, 三角形の存在が薄い(三角形という条件は重要). こういう問題は前にもあったような,なかったような.取り敢えず,解いたが, 理論的な保証が無いので,そこらへん,もうチョ…

Google Code Jam 2009 Round2 D (メモ)

書いてみた. 上位の方のソースを見ると2分探索で解いていた. まね. import Control.Monad import Text.Printf import Debug.Trace -- main part data Circle = C { x::Double, y::Double, r::Double} main = do (c:_) <- getList :: IO [Int] forM_ [1..c…

Google Code Jam 2009 Round2 B (メモ)

書いてみた. Haskellでは,面倒になることが予想されたので,C++で. 多分,標準的な解法だと思う.ただのDP. #include <iostream> #include <cstdlib> using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); i++) const int R = 50, C = 50, U = R*C+1; char</cstdlib></iostream>…

Google Code Jam 2009 Round2 C (メモ)

マッチングで解けるのね. そんなの思いつきません.解けないまま,終るのはシャクなので,Haskellで書いてみた. import Control.Monad import Text.Printf import Data.Array import Data.Graph.Inductive -- main part main = do (t:_) <- getList :: IO …

pizza_party

コマンドラインからピザをたのむ. なんて,ことができる.そんなプログラムが存在する(ジョークソフト?).Ordering Pizza Via the Command Line (Video) (ビデオ,凄い楽しそう)これ,前置き. 実は,Archlinuxではデフォルトの状態で簡単にインストー…

2部グラフのマッチング

2008年のGoogle Code Jamをちょっとだけやった. 2部グラフのマッチングの応用があった. 模範回答(?)のコードが想像以上に短かった.こんな感じ. #include <iostream> #include <vector> #include <cstring> using namespace std; #define FILL(xs, x) memset(xs, x, sizeof((xs)))</cstring></vector></iostream>…

eject

コマンドラインで eject したら CDがejectされた. ビビッタ

Problem 256 めも

ある規則性を観察できれば,おしまい. もう,解けたも同然である. (と思っていた.今,考えなおすと,たんなる必要十分条件を求めただけで,それが偶然十分必要条件でもあった.ラッキー)しかし,アホなコーディングしたせいで,時間がかかった. どうに…

Problem 256 を 紹介する

畳がでてくるので,畳好きの日本人としては,紹介しないわけにはいかない.(問題の雰囲気を伝えることを目標にする.詳しくは Problem 256 - Project Eulerで)どんな問題かというと… 縦がa,横がbの長方形の部屋(a (画像はhttp://projecteuler.net/index.…

2008 の Round2 の D (Google Code Jam 2008)

やってみた,というか書いてみた. 遅いなー import Data.List import Data.Array import Control.Monad import Text.Printf import Data.Bits main = do (n:_) <- getList :: IO [Int] forM_ [1..n] $ \i -> do (k:_) <- getList cs <- getLine printf "Cas…

VirtualBox の Guest OS (Archlinux, NAT) に ssh で接続する.

Guest 側で ifconfig して,ipアドレス調べて, ssh root@hostname でOKでしょ. と思ったら,そうは問屋がおろさない. Guest OS に ssh をinstall, 設定 うん.実は,ssh デフォルトでは入ってなかった. # pacman -Sy opensshそして,初期状態だと /etc/h…

使用していないファイルを削除した

/var/ 以下から,uninstallしたパッケージのキャッシュや, /var/tmp/ptexlive などを削除したら, 2.5GBぐらい削除したようだ.

蚊が気になって,集中できない… えーい,蚊取り線香はないのか

Round 1C の C を C++で書いてみた(Google Code Jam 2009)

haskellで書いたら遅かったので,C++で書いてみた. アルゴリズムはほぼ同じ.メモ化再帰ではなく,配列でビルドアップ.実は numeric_limits::max() で intの最大値がとりだせるらしい. #include<iostream> #include<cmath> #include<limits> using namespace std; int main() { int</limits></cmath></iostream>…

Round 1A (Google Code Jam 2009)

練習のためやってみた. Bは問題文が長いので,まだ読んでいない.(前回と同じテンプレート使用) A 各baseに対するhappy数達を,無限リストとして,計算しておいて,最後にintersectionをとる. という,作戦だが,どうも遅い.メモリを沢山使う. やはり,…

Round 1C (Google Code Jam 2009)

ヘボヘボだった,1Bだが,なんとか通過していた. 練習のために,1Cもやってみた. 時間制限とかプレッシャーがないぶん,気楽で,まぁまぁ良い感じだった(たぶん,問題も簡単になっている).(前回と同じテンプレートを使用しています.) A そのまま.た…

Round 1B (Google Code Jam 2009)

まぁ,前回同様,予想通り,ダメダメだったわけだが.共通のテンプレート(下)を使用した. import Data.List import Data.Maybe import Data.Ord import Data.Char import Data.Function import Data.Map (Map) import qualified Data.Map as M import Dat…

Problem 255 めも

Problem 255 - Project Euler解いた.前2問に比べると簡単だと思う(もう内容忘れかけているが).はじめにHaskellで解いたら,実行時間は3分ぐらいだった. 再帰を使おうとしたら,stack space overflow. seq入れてみたり,!入れてみたりして,stack space…

linux kernel 2.6.31

2.6.31がでてた. http://www.kernel.org/ついでに, 2.6.30.6もでてた. パッケージアップデートしたら,2.6.30.6になった. 不具合あれば何か書く.

vector と array の違い (C++) その2.

Container classes, C++ FAQ によると,生のarrayより,vectorを使ったほうがベターだそうです. 理由としては より生産定期になる ロバストなコードになる 他人がメンテしやすい vetorにはat()がある(out of bounds を検知) メモリ管理が楽 インサートした…

実行可能ファイルだけ削除

% find . -executable -type f -exec rm {} \;間違っても, # find / -executable -type f -exec rm {} \;なんてしないように.

vector と array の違い (C++)

違うのは知ってるけど,ソースを読んだわけではないし. 実際どうなのか,気になって少し調べたら,こんなの見付けた.Container classes, C++ FAQまだ,全部読んでいないが.

Google Code Jam の統計情報など

Languages used (2009) — Code Jam Statistics 面白いです. Brainfuckとか,Assemblyとか,PostScriptとかで解いている人がいる. # さすがに,Whitespace はなかった.

locate -S

locate -S -S, --statistics Write statistics about each read database to standard output instead of searching for files and exit successfully. ということで,実行してみた(desktop pc, Archlinux). Database /var/lib/mlocate/mlocate.db: 37072 …

起動時に壁紙をランダムに設定する(Openbox).

壁紙の設定には Feh - ArchWiki を使っている. 壁紙達が ~/pic/wallpapers/ 以下に入っているとして, autostart.sh に以下の用な記述を追加. feh --bg-scale $( find ~/pic/wallpapers/ -type f -or -type l | ~/bin/random-select ) 画像へのシンボリッ…

速いnubが欲しい.(Haskell)

The Haskell 98 Library Report: List Utilities によると, nub :: (Eq a) => [a] -> [a] nub [] = [] nub (x:xs) = x : nub (filter (\y -> not (x == y)) xs) なので,実はnubはO(n^2). Eq だけ,だから仕方ないのかもしれないが. しかし, nub :: (Ord …

Bootchart

bootchart. なんか,bootchartを止めるのが若干早かったような気もするが気にしないことにする.

Desktop Enviroment は 必要か?

Window Manager で十分な気がしてきた.ほとんどのアプリケーションは最大化して使用するし.デスクトップには何も置かない主義.最近はファイルマネージャーもあまり使わない.システムモニタはhtopだし.モニタの解像度がもっと大きければ,違うのかもしれ…