ウホウホゴリラッホ

主に勉強したことをまとめていきます。twitter:@pytran3

【国立】最速で学士取得する方法【電通大】

この記事は社会人学生Advent Calendar 2023の6日目として作成されました。 たぶんこれが一番早いと思います 働きながら学士(工学)をたったの2年で取れる*1スクールが都内にありました。実際に学士を取得してみた体験記を書きます。入学したころの記事はこ…

AtCoderJobs で転職!

2022年6月を持って退職して無職専業学生になりました。世知辛いことに食いぶちが必要で専業学生というわけにもいかないので、いわゆる社会人学生として働きやすい会社を求めて*1 AtCoderJobs を利用しました。 かなり満足のいく転職活動ができたので AtCoder…

3 年次後期を振り返る

今更ですが、この春に 3 年次後期が終わったので振り返り。 研究室配属 Ⅰ 類のコンピュータサイエンスの研究室に希望通り配属された。Ⅰ 類特有の配属システムがあるので期日に気をつけて入力しないといけなかった。 授業 法学 優。日本国憲法を中心として法…

3 年次前期を振り返る

電気通信大学の先端工学基礎課程に 3 年次編入して半年たったので振り返りを書く。 単位認定 かなり負担が大きく授業 2 つ分くらいの時間と精神力を持っていかれていた気がする。前期の半分くらいのところで終わるので、期末よりも中間のレポートが圧倒的に…

「心理的安全性のつくりかた」感想

心理的安全性のつくりかた https://www.amazon.co.jp/s?k=%E5%BF%83%E7%90%86%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7%E3%81%AE%E3%81%A4%E3%81%8F%E3%82%8A%E6%96%B9&adgrpid=115193920969&gclid=CjwKCAiAxKv_BRBdEiwAyd40N5fL7_5s29uYWdL-JxZHIKXvuTFx2SG2vO…

20代最後の年に電通大夜間主に編入してみた

プログラミングスクール*1電気通信大学の先端工学基礎課程(夜間)に編入できることになったので、簡単に流れをまとめてみました。 誰かの参考になれば幸いです。 プログラミングスクール?に春から通います pic.twitter.com/QXz93y80vZ— pytran (@pytran3) …

ISUCON10に参加した

概要 ISUCON10に参加して180位くらいでした。(結果が確定かよくわからない) 気になったワード(随時更新) alp pt-query-digest MySQL Tuner Cloud Profiler Cloud Trace

アセンブリ勉強記録 7

勉強したこと ポインタ ポインタの指し先を書き換える場合はデータ長を指定しないといけない。 mov [test], 4 ; <- compile error mov byte[test], 4 ; <- ok!! 文字列 コードを写経した。基本的にこういうロジックはC言語で学んだことと同じくやるらしい。 …

アセンブリ勉強記録 6

勉強したこと call call <address>は以下の糖衣構文らしい push rip jmp <adress> ripはリターンアドレスを表す。 ret retとpop ripは同じ意味らしい? return a value raxに戻り値を格納する。rdxも同様の役割をもつらしく、第2の戻り値として利用される。 システムコール </adress></address>…

アセンブリ勉強記録 5

勉強したこと 呼び出し先退避レジスタ・呼び出し元退避レジスタ レジスタを守る規約として関数に関しては以下のように定められている。 呼び出し先退避レジスタ:rbx, rbp, rsp, r12-15 呼び出し元退避レジスタ:上記以外

アセンブリ勉強記録 4

勉強したこと syscall linuxのシステムコールのテーブルは以下で定義されている。カーネルが立ち上がるときにハンドラがこのように登録される。 linux/syscall_64.tbl at v4.15 · torvalds/linux · GitHub system callの実装はこのへんのどこかにあるはず li…

アセンブリ勉強記録 3

勉強したこと NASMでの実行ファイルの生成 リンクする必要があるらしい。 nasm -felf64 main.asm ld -o main main.o 徒然 movではメモリtoメモリのコピーができないらしい。レジスタ<->メモリはできるのかな? syscallで呼び出されるシステムコールはカーネ…

アセンブリ勉強記録 2

勉強したこと ハードウェアスタック スタックをハードウェアでサポートしており、rspレジスタを利用する。 rspレジスタにはスタックの最も上にある要素のアドレスが格納される。オペランドのサイズは通常8バイトを使うが2,4バイトも使える。 stack overflow…

アセンブリ勉強記録

動機 コンパイラを書くにあたって、アセンブリの知識が無いと難しいことがわかったので平行して勉強していこうかと。 最初の目標は再帰関数でフィボナッチ数を計算することにした。 勉強したこと おまじないたち おまじない扱いされてそうな彼ら .intel_synt…

HTTF2020参戦記

HTTF2020に参加しました 全然ダメだったけど反省のために書きます。325/834位でした。 最小全域木(シュタイナー木)の構築みたいのをして4901556点でした。最短経路問題ってなんですか? まともに最小全域木作ろうとすると実装ができなかったので、最初に塗り…

get

get + 過去分詞? get + 過去分詞のgetは受動態の時のbe動詞と同じような役割をする。be動詞よりも動的なイメージ、動作が強調される。 参考 hanasu-eigo.com

詰まった時に参照するリスト

考察で詰まった時用確認リスト 考察詰まった時ようにまとめる。デバッグのアイデアとかも含む。 実装・デバッグ スモールケースで特殊化していないか or する必要がないか バグを埋めこみやすいのでうまく使い分ける dpで前回の状態をただ下ろせば良いやつを…

STLで二分探索

動機 二度と悲劇を繰り返さないために 悲劇 lower_boundとupper_bound STLに含まれる両関数、文字通り上界と下界を与える。 lower_bound keyより真に大なる区間の下界 upper_bound keyより真に小なる区間の上界 例によって左閉半開区間だなと理解したけど、…

分割表現

分割表現とは 参考の図書によると、英語では大まかなものを説明してから細かな描写をする癖があるらしい。 確かに前置詞は文末にくることが多い。 そんなに特別なことではない気もする? 例 Deep down among the coral rocks you saw little coloured fish s…

g++のデバッグモード

配列外参照はつらい のでデバッグオプション-D_GLIBCXX_DEBUGでエラーを吐くようにする。 g++ -O2 -std=c++14 -D_GLIBCXX_DEBUG 実行例 $ g++ -O2 -std=c++14 -D_GLIBCXX_DEBUG Main.cpp && ./a.out 3 2 3 5 8 /usr/local/Cellar/gcc/8.2.0/include/c++/8.2.…

"One day" or "Someday"

"One day" or "Someday" ふとどっちがどっちかわからなくなったのでまとめる。 One day 「いつか必ず」というニュアンスがあり意思を持って達成する場合や具体的なイメージがある場合に用いる。 One of these daysも同じ意味。 Someday 「そのうち」というニ…

船を「she」と呼ぶ

Put her about. 「船を回せ」という意味で、herは船を意味する。(もちろんherが具体的に船を指すかは文脈依存で別の乗り物かもしれない) そういえば 男性の船乗りから見てパートナーに例えて女性名を船の名前につける慣習があることを思い出した。 調べてみ…

描出話法

英語なにもわかりません 文法とかなにもわからないけどしょうがないので勉強し始めました。 これは文法の話かはわからないけど知っておくべきな気がしたのでまとめます。 描出話法 主に小説なんかで使われるらしい。 Ex.1 There was a knock on her door at …

降順sort

実装 vector<int> a(n); sort(all(a)); //昇順 sort(all(a), greater<int>()); //降順 sort(a.rbegin(), a.rend()); //降順</int></int>

隣合うbitのチェック

実装例 Misteerさんのコードを眺めてたら賢いと思ったので記録。 i番目とi+1番目のbitが立っていること独立にやるのではなく(b >> i) % 4 == 3でチェックする。賢い。 ※ 元コードだとvalidationだけど加算に書き換えている。 int w = 8; int sum = 0; for (i…

template付きの関数の書き方

template付きの関数 以下の問題でpriority_queueの昇順・降順を引数で上手いことやりたくて実装した。(これ自体はもっと上手いことやれそう?でも昇順降順で型が違うのでできなさそう?) D - 3N Numbers atcoder.jp Submission #6361635 - AtCoder Regular C…

uniqueにする方法

setもあるけど std:uniqueは隣接する重複要素を削除し配列の前に詰める。削除後の末尾のptriteratorを返却する。 eraseで後ろのゴミになっている部分を削除する。 vector<long long> u(n); REP(i, n) cin >> u[i]; sort(u.begin(),u.end()); //sortしないとuniqueには必</long>…

C++で拡張for文

実装例 const auto&で受けるのが万能そう for(const auto& d : {3, 5, 15, 25, 75}) { cout << d << endl; }

斜め累積和

斜め方向の累積和 斜め方向の累積和を以下の問題で使用した。今後も使いそうなので整理しておく。 atcoder.jp Submission #6315441 - Tenka1 Programmer Contest 実装例 cumの定義は第一引数を、第二引数をとして各斜め線のまでの累積和とした。 ll h, w; ci…

next_permutationの使い方

結論 これを見ろ vivi.dyndns.org 実装例 sort(all(a)); ll ans = 1e12; do { ll tmp = 0; REP(i, a.size()-1) { tmp += g[a[i]][a[i+1]]; } ans = min(ans, tmp); } while(next_permutation(all(r))); //辞書順に取り出す。辞書順最初に戻るタイミングでfal…