0x19f (Shinya Kato) の日報

主にプログラミング関連の話をします

6/24 冴えてる

昨日の夜の話になるけれど, 「海外の修士に行ったら?」と言われた. 曰く, ソフトウェアエンジニアリングで働くなら海外でマスター取った方がいいんじゃないかと. まぁ, 確かにソフトウェアの本場で働くってのを目標にするなら, 大きな分岐点になるってのはわかる. それに, 海外の修士に行ったとしても日本国内で働くって選択肢は消えるわけじゃない. とは言うものの自分の周りでそういうキャリアパスを歩んできた人って全然いないので実際のところどうなのかが微塵もわからない. チャレンジしてみて行けたらラッキーぐらいのものだと思っておいた方が良さそう.

 

ついでに本を読みなさいというお話を聞いてきたので, 紹介された本の中から何冊かここに書いておこうかと思う. どっちも大学1年生の頃に読んだ本(だったはず). 他にもデザイン系でオススメはノンデザとかですかね. それにしても最近全然本読んでないなぁ. 技術書は読むの時間かかるので数冊並列して読み進めてたりするし. 個人的にはカーネギーの『道は開ける』を読もうかなと(人生に迷っているので).

www.amazon.co.jp

www.amazon.co.jp

 

今日は朝一度起きて二度寝したらお昼過ぎになっていた. どうやら結構疲れていたらしい. プロBの課題が難しい. C言語でx * M + y / N(M, N: 定数)を計算する関数をコンパイルしたオブジェクトファイルが与えられて, それを逆アセンブルしてM, Nを推測しろという内容. 3問のうち1, 2問目は普通にわかる. 3問目, 割り算なのに掛け算してる!?みたいな感じ. なんかこんな感じの整数除算の最適化をしているらしい. 課題の方は64ビットなのだけれど, 本当にそれ正しく除算の答え出るのかよといった感じ.

 

今日のARCは調子がよくてC, D, Eと解けた. Dは最小全域木の問題だけど, N^2個も辺があったらクラスカル法じゃ間に合なくね?と思って諦めそうになった. 結局X/Y方向にソートして隣り合うノードの距離をpriority_queueに入れて, 普通にクラスカル法すれば良いのだけれど. Eは周上の点を一周ぐるっと周りながらスタックトップと同じものが出てきたら取り除く, そうでなければスタックに積んでいく. 最終的にスタックが空になれば交差しないと判定できる(こんなの思いつくとか本当冴えてるな, 今日の俺).