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

TZTesterを更に更に改良する (C++0x編)

まず、生成されるソースコードを載せておきます。 //(大量の#includeは略) using namespace std; //(typedefも略) //(マクロも略) class P8XGraphBuilder { public: int solve( vector <int> _scores ) { } }; // BEGIN CUT HERE #include "/home/wistery/.topc</int>…

こどふぉのすすめ

なぜこどふぉか Topcoder Topcoderは全探索とDPしか出ないという風説はあまりにも有名です。それに比べ、こどふぉはいろいろな問題(グラフや幾何、文字列など?)があるので、解いていて楽しいです。また、TopCoderはアリーナを起動するのが面倒ですし、どの…

nkfの使い方

-e : EUC-JP -s : Shift-JIS -w : UTF-8 -g : 自動判別の結果を表示 --overwrite : 引数のファイルを破壊的に変更 nkf -w hoge.txt | lessとかする。

modを常に保持するint

C++

プログラミングコンテストでは、 「mod 100000007 で答えよ。」 みたいな問題がしばしば出題されますが、よくmod取るのを忘れるので、常にmodを保持するint型、modintを作ってみた。 template<int mod> class modint { private: int _num; modint set(int num){ _num </int>…

javaで関数型風な機能を色々

まずはタプル。 public class Tuple<F,S> { public final F fst; public final S snd; public Tuple(F _fst, S _snd){ this.fst = _fst; this.snd = _snd; } } 簡単ですね。次に高階関数。 public interface Predicate<E> { public boolean apply(E arg); } public i</e></f,s>…

scpの使い方

毎回忘れるのでメモ。ダウンロード(最後の点を忘れない。) scp wistery@xx.xx.xx.xx:~/hoge.txt .アップロード scp hoge.txt wistery@xx.xx.xx.xx:~/あと、ポート指定は -P 5656 のように大文字なので注意。

gitをソースからビルド

バージョンは1.7.6.1http://git-scm.com/ から最新のソースをダウンロードして、 tar xvjf git-1.7.6.1.tar.bz2 cd git-1.7.6.1 make prefix=$HOME/.local make prefix=$HOME/.local install今回、管理者権限がないので$HOME以下に設置しました。(管理者権…

可変引数マクロの使い方

C

...と書くとその部分がごっそり__VA_ARGS__で参照できる。 #define try(var, syscall, ...) if( (var = syscall(__VA_ARGS__)) < 0) { perror(#syscall); exit(1);} #define _try(syscall, ...) if(syscall(__VA_ARGS__) < 0) { perror(#syscall); exit(1);}…

java クラスパスの設定 など

コンパイル javac -classpath .:lib/hoge.jar:lib/huga.jar実行 java -classpath .:lib/hoge.jar:lib/huga.jar(いずれもコロン区切り)jarに固めるとき、manifest.mfに以下のように書く Class-Path: classes lib/hoge.jar lib/huga.jarjarについて jarは基本…

Ubuntu 規定のプログラムで開く

gnome-openでOK.alias open='gnome-open'とかしておきましょう

デバッグ出力の工夫

(追記: 普通にこんな感じのクラスが標準ライブラリとかにある...) 例のコードはjavaですが、javaに限らず使えると思います。 package jp.wistery.utils; public class Debug { public static enum Levels { NONE(0), INFO(1), DEBUG(2), ALL(3); private int…

emacs コードの折りたたみ

標準で有るので、.emacsに加筆するだけでOK. (add-hook 'java-mode-hook '(lambda () (hs-minor-mode 1))) (define-key global-map (kbd "C-c 3") 'hs-toggle-hiding) 謎たち xx-mode-hookのところは逐一書かないといけない? hs-minor-mode-mapが無いと怒ら…

std::regexが動かない?

いやそんなはずは。。 int main(void) { regex re("a+b"); string s = "aab"; smatch result; if(regex_search(s, result, re)){ cout << "YES" << endl; } else cout << "NO" << endl; return 0; } が"NO"だったり、 int main(void) { regex re("[0-9]"); s…

ロジックとビューの分離。プログラム単位で

$ ./hoge | ./hogeGUI標準出力にメッセージを飛ばしてGUIを制御する。 ソケット使うとかと違って煩わしさがなくていいですね!

rubyの入れ方。ついでにrailsの入れ方。

(追記: この文章古すぎです。素直にrvmの公式ページを見てやりましょう) まずはrvmを入れる。要git, curl $ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm).bashrcに次の行を加える。 $HOME/.rvm/scripts/rvmzshの場合はこっち(適当、間違…

javaでURLのクエリをパース

?hogehoge=mojamoja&huga=piyoとかそういう奴。 package; import java.util.*; public class StringUtils { public static Map<String, String> getQueryMap(String query) { String[] params = query.split("&"); Map<String, String> map = new HashMap<String, String>(); for (String param : params) { S</string,></string,></string,>…

topcoderがわずかに楽になる2行

僕はこれをtmakeと名付けて使ってます。 /usr/bin/g++ -O2 -Wall *.cpp -o a ./a

auto-complete.el

git clone https://github.com/m2ym/auto-complete.gitcd auto-complete make install DIR=$HOME/.emacs.d/auto_completeDIRは適当に。(require 'auto-complete-config) (add-to-list 'ac-dictionary-directories "/home/enecre/.emacs.d/auto_complete/ac-d…

gcc4.6.1をインストール

c++11を利用したくなったのでgccの最新版を入れることにした。 インストール済みだったのは4.4.3(ubuntu10.04プリインストール)、 今回入れたのは4.6.1。c++11の新機能は以下で知った http://topcoder.g.hatena.ne.jp/cafelier/20110816/1313498443基本、htt…