いろいろがんばりたいブログ

情報科学科の人がいろいろ書きます。

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

今年

去年書いた、「来年やること」はまったく達成されませんでした。 ただまぁ、20歳になったときの黄色コーダーになる、っていうのは達成された模様です。 マジ、今年は何もやってない。 来年から本気だす。

C85(三日目)

タペストリーとかないのは察してくれ。

C85(二日目) 戦利品

おまけ 始発で行ってきました。 一冊書い忘れが発生してしまったのが残念でした。

Pandocで改行を改行として扱いたい。

普通のpandocでは改行がhardline_breakとしてあつかわれない。 これには以下のようにする。 pandoc hoge.md -f markdown+hard_line_breaks http://johnmacfarlane.net/pandoc/README.html

Codeforces 355A Vasya and Digital Root (乱択解)

問題: 英語を読むか torusさんのブログ http://d.hatena.ne.jp/torus711/20131013/p3 を参照してください。 Aにしてはどうやって解くのか初見でわからなかった。簡単な解法としては、最初の桁だけdにすれば良いのだけれど、それすら思いつかなかった。 よっ…

C++でもstringとintのかけ算がしたい

できた。O(log n)かなぁ……。 string operator*(const string& s,int k){ if(k == 0) return ""; string p = (s+s)*(k/2); if(k%2 == 1) p+=s; return p; } string solve(int n0,int n5){ string s; if(n0 == 0){ return "-1"; }else if(n5 < 9){ return "0";…

C++にもPythonのenumerateがほしかった

Pythonにはenumerateというメソッドがあって、以下の様に使う。 In [1]: vec = [1,2,3,4,5] In [2]: for i,v in enumerate(vec): ...: print(i,v) 0 1 1 2 2 3 3 4 Pythonでいうところのforは、C++,Javaでいうところの拡張forにあたるもので、C++/Javaのよう…

Where Is My Phone And Watchというアプリをつくりました。

Where Is My Phone And Watch というアプリをつくりました。 なにができるん? SmartWatch2からAndroid(4.x)をバイブレーション,着信音を鳴らすことができます。 AndroidからSmartWatch2のバイブレーションを鳴らすことができます。 デモ そのうち。 ダウン…

2014年度ミニコンに向けて1

予定は未定です 2014年こそ、ミニコンに出る予定である。 とはいえ、ただ普通に作っただけではおもしろくない。 ちなみに一昨年は、Juliusを使って音声認識でロボットを操縦しようとした。 使いたい技術 フルのLinuxが走るボードを使用する。Haskellを走らせ…

修行用xmodmap

修行中なので。 clear Lock clear Control keycode 66 = Control_L keycode 135 = Super_R ! Return keycode 36 = Control_R add Control = Control_L add Control = Control_R ! for strict. ! up left,right keycode 111 = keycode 113 = keycode 114 = ke…

Firefoxのvimperatorから英語でグーグル検索する

色々とやってられなかったので。 まず、ここから Google (No country redirect) とかかれたところをクリックして、なんかインストールする。 一時的にNavigation Toolbarをオンにして、検索窓の左のとこからManage Search Engineする。 いらないのを消したり…

雷ちゃんはかわいい

かわいいのでどこでも声を聞きたいので適当にでっちあげた。 あまりやりすぎないようにね。 swftoolsバグってるっぽくて透明なのがとりだせない……。 #!/bin/sh VOICE_URL="http://203.104.105.167" NUMBER_OF_VOICE=53 VOICE_DIR=voice PIC_DIR=pic WAIT_TIM…

POJ 1637 Sightseeing tour

オイラー閉路にtwo-wayなエッジを追加した問題. 最大流で解けます。考え方は以下の通り まずtwo-wayなエッジであろうと入力そのまま有向なエッジとしてグラフに追加していく。 出るエッジについて-1,入るエッジについて+1を各ノードで計算しておく。通常のオ…

EmacsでシンタックスハイライトしたテキストをHTML化する方法

Emacs24以上で。 package.elとかでhtmlizeをインストールする。 disable-themeでテーマを一時的に無効化(黒背景とかだとヤバい?) M-x htmlize-file でファイルを指定する。 HTMLができる 参考 http://yohshiy.blog.fc2.com/blog-entry-8.html http://www.em…

StateMonadをOCamlで書いた。

というお話。コンパイラを書く時に必要になるっぽいので。 (*simple monad*) module type MONAD = sig (* Type for state.It's Covariant*) type +'a t (* lift up normal value to monaded value.*) val return : 'a -> 'a t (* bind is the function to ap…

3次元ヤング図形を列挙するアルゴリズムについて

工大祭で出してみたので. 簡単な再帰でかけました。 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include

Generating Polynomino in C++

http://en.wikipedia.org/wiki/Polyomino one-handedなもの。つまり回転による同型は無視する。また、穴があるものはなしとする。 #include <iostream> #include <iomanip> #include <vector> #include <map> #include <set> #include <queue> #include <bitset> #include <stack> #include <utility> #include <numeric> #include <algorithm> #includ</algorithm></numeric></utility></stack></bitset></queue></set></map></vector></iomanip></iostream>…

Topcoder SRM 593 div1

本番中は250のみを通した。 250 四色定理より、明らかに4以下であることはわかる。 しかし、すこし考えると、3色で塗り分け可能であることがわかる。 なので、0,1,2で塗れるかどうかを考えるだけで良い。 2色で塗れるかは再帰的にDFSをすればよい。(蟻本参照…

EmacsでErlangモードを使おう。

環境 ArchLinux Erlang (R16B01) Emacs (24.3.1) これをかく。 (setq erlang-root-dir "/usr/lib/erlang") (let ((erlang-lib-dir (concat erlang-root-dir "/lib/")) (erlang-bin-dir (concat erlang-root-dir "/bin/"))) (setq exec-path (cons erlang-bin…

ArchLinuxのGTKテーマのことについて。

結論から言うと、gnome-thmes-standard,gnome-icon-theme,gnome-icon-theme-extras,gnome-icon-theme-symbolicをいれて、lxappearanceでadwaitaとgnome-iconを選択すればよい。

東工大における、理学部情報科学科と工学部情報工学科の違い

なんだか、検索してもノイズだらけだったので。 僕は理学部情報科学科の所属なので、工学科のほうについては多少の推測があります。 一言で言うならば、理学部と工学部の違い、だけどもうすこし具体的に。 基本的には理学部では、応用数学,コンピュータの理…

Topcoder SRM 588 div1

o-- でした。 #include <iostream> #include <vector> #include <algorithm> using namespace std; #define all(c) c.begin(),c.end() struct Song{ int dur; int tone; Song(int d,int t) : dur(d),tone(t) {} Song() {} }; struct ToneComp{ bool operator()(const Song& a,const Song& </algorithm></vector></iostream>…

EmacsとTypeScriptとLinux

EmacsでTypeScriptを書こうと思ったときに、プラグインのロードができなかった。 理由は、Linuxは大文字小文字をファイルシステムレベルで管理するにもかかわらず、TypeScript.elは、アレだったからである。 回避するには、typescript.elにリネームすればよ…

ICPC2013国内模擬予選

A 王様の視察 がんばればできます。回すのをどうやるかは割と好みです。 #include <iostream> #include <vector> #include <string> using namespace std; int onebefore(char c){ if(c == 'a') return 'Z'; if(c == 'A') return 'z'; return c-1; } int before(char c,int n){ for(int</string></vector></iostream>…

AOJ 2255 6/2(1+2)

方針は、演算子でまず区切って、区切ったLHSとRHSを再帰的に区切っていく。 eagletmtさんの方針とほぼ同じで、詳しくかかれていたのでそちらを参照のこと。 http://eagletmt.github.io/contests/blog/aoj-2255/ #include <iostream> #include <vector> #include <set> #include <numeric> #in</numeric></set></vector></iostream>…

AOJ 2107 Can I go there?

ノードを、前どこにいたかと、今どこにいるかのペアのようなものでつくる。 行列の累乗で計算する。 最初は、50*50 = 2500ノードで無理じゃんと思うけれど、よく見ると道の数が高々50なので、ノードの個数は高々100くらいなので大丈夫。 #include <iostream> #include <vector></vector></iostream>…

Topcoder SRM 503 Div2

練習。 250 ToastXRaspberry まぁ割りきれたらそれでいいけど、割りきれなかった場合にはもう一回余りをやる。 class ToastXRaspberry{ public: int apply(int upper_limit, int layer_count){ if(layer_count % upper_limit == 0){ return layer_count / up…

ArchLinuxで使ってるソフトウェアまとめ

普段とくによく使ってるものを纏めてみる。主にデスクトップユースとして。ArchLinuxのインストール方法と、公式サイトへのリンクを貼っていく。インストールに一部yaourtが必要。 Ubuntuでも同じソフトは使えるはず。 インターネット Chromium GoogleChrome…

SRM 552 Div2

練習250 TheProgrammingContestDivTwo 簡単なほうから貪欲。どうしてそれでよいかというと、仮に2問とけるときに、A,Bが残っていて、 ABのとき、A+(A+B)であり、B->Aのとき、B+(B+A)であるから。 class TheProgrammingContestDivTwo{ public: vector <int> find(i</int>…

SRM 551 Div2

練習。250 ColorfulBricks 種類が3つ以上あれば、必ず交わる場所が2箇所はある。 種類が2つであれば、exampleにあるように2パターン。 種類が1つであれば、exampleにあるように1パターン。 setを使うと楽。 class ColorfulBricks { public: int countLayouts…