Code Thanks Festival 2018に参加してきました

最近あまり競プロできていなかったので久しぶりの更新です.さて,人生初のオンサイトコンテストであるCode Thanks Festivalに参加してきました! おそらくレベル的にはThanksもまだ厳しいくらいだったのですが,たまたま予選Bで相性のいい問題が早解きでき…

AtCoder Beginner Contest 113

さっさと3完したけどDの解法が生えずに終了。 だいたい解法がDPの時はいつもこんな感じなので現状では良しとしよう。 A - Discount Fare X + Y/2をする。 B - Palace 一個ずつ比較していって平均との差が最も小さいindexおよびその差を記録しておく。 本番で…

C++でnCkやnPkを全列挙する関数

n!通りの順列を全列挙する関数はnext_permutationという備え付けの関数を使えばできたが、next_combinationなるものはどうやら存在しないようだった。 例えば「N個の要素からK個選んだ時の和」などを考えるとき、combinationのパターンを全列挙したくなる時…

MacでDockの日本語表示が文字化けしてしまった

ふと自分のMacのDockerのtooltipをみたらこんな感じになってました。 文字化けですね。何やらunicodeっぽい何かが出てきてしまっています。 原因は突き止められていないんですが、変わったことといえば自分のポケットWifiを自分のMacBookに接続したことくら…

C++の約数とか使う時用の関数

なのでN=1e10とかなら動くはず。 vector<ll> divisor(ll M){ //約数の全列挙 vector<ll> dd; for(ll i = 1; i*i <= M; i++){ if(M % i == 0){ dd.push_back(i); if(i * i != M){ dd.push_back(M/i); } } } sort(dd.begin(), dd.end()); return dd; } vector<ll> factor(l</ll></ll></ll>…

Pythonでsubprocessを用いてshellコマンドを実行する

PythonからJavaのプログラムを直接呼び出したくなる場面があったので調べたところsubprocessという標準ライブラリを用いるとできるらしい。 import subprocess if __name__ == '__main__': result = subprocess.Popen("java -cp ./path/to file_1".strip().s…

Code Festival 2018 qual B

ABC3完の91位。500点のCを20分程度で一発で通せたのはなかなか大きかった。A 100 -(Nの倍数な数字の個数)B 一番顔が面白いやつにXを全て足すと最適C 制限の201800をみて、1000 * 1000/201800をしたらほぼ5だったので、よっぽどのことがない限りは一つのXで5…

AtCoder水色になりました

無事水色になることができた。 ぶっちゃけると水色ならもうちょっとすぐになれると思っていた...笑 水色を目前に控えた時にC問題にどハマりして死ぬみたいな展開を何回かやってしまったのでそれでしばらく停滞したんだと思う。 あと、AGC早解きは貴重なレー…

github pagesをつくった

githubアカウントさえ持っていれば誰でも気軽に自分のホームページを置くことができるgithub pagesというものをつくってみた。 pages.github.com 作成はめちゃくちゃ簡単だった。1. (自分のアカウント名).github.io という新しいレポジトリを作成する(正確に…

シンボリックリンクってなんぞや

よく「シンボリックリンクを貼る」みたいな操作を目にするが、実際に何をしているかちゃんと把握していなかったので調べてみた。 シンボリックリンクとは 別ディレクトリに存在するファイルやディレクトリを参照するファイルのことを指す。 ファイルの実体は…

2次元いもすをしてみた

2次元平面で異なるN個の範囲を示す座標が与えられ、その重なりがもっとも多い部分を求めるような問題。普通の解法であれば二次元の配列を用意していN個それぞれについて指定された範囲の数値をインクリメントする事になる。しかし、二次元平面の縦と横の長…

Combinationの求め方まとめ

c++でnCkの計算でnの値に応じた2種類の導出方法をメモ。 nの値が50程度でlong long型に収まるとき このときはオーバーフローや時間制約を気にする必要はないが、階乗を愚直に計算することはできないので注意する。 nCk = n-1Ck-1 + n-1Ckというパスカルの三…

c++でpriority_queueを使ってみた

通常のqueueはbfsなどで使うことがあったが遂にpriority_queueを使う問題に遭遇したので使い方をメモしておく。 使ったのはこのD問題 beta.atcoder.jp これ、結構考察と実行ともに充実してていい問題だと思った。priority_queueの基本的な使い方はこんな感じ…

Tampermonkeyを用いたuser scriptの作成

最近AtCoderでuser scriptを用いた自分だけのページを作ろうみたいな流れがあるので試しに簡単なuser scriptを作成してみた。Chromeを使っているので今回はTampermonkeyというChromeのプラグインを用いる。https://tampermonkey.net/新規スクリプトを選択す…

ぼくのDOSS奮闘記 〜LibreOfficeを手探ってみた〜 3/3

論理和、論理積、そしてシェル関数 発表まで残された日数はあと授業2回分しかないが、流石に実装したものが1つだけというのは物悲しいので、追加で機能を実装することにした。まず自分たちで思いついた案としては「if文で用いるような論理和、論理積を記号を…

ぼくのDOSS奮闘記 〜LibreOfficeを手探ってみた〜 2/3

makeを無事終えたこの日の実験。全員がcalcの起動までできていたのでここからデバッガを動かしてみることにした。gnuplotの時に行った方法とは異なり、LibreOfficeでは開発用にこのようなコマンドが用意されていた。 $ make debugrun これを実行することでgd…

ぼくのDOSS奮闘記 〜LibreOfficeを手探ってみた〜 1/3

ここから後期実験「大規模ソフトウェアを手探る」のレポートを書いていきたいと思います。時系列に沿ってどのようなことを行ったか、裏にはどのような苦労があったのかをわかりやすくまとめていきたいと思います。なお、変更点の部分をコードでガンガン載せ…

はじめまして

こんばんは、ブログなんて書くの初めてな杉山です。 きっかけはeeicの授業「大規模ソフトウェアを手探る」という実験の最終レポートがブログでもいいよと言われたことですね。 せっかくなので備忘録的な何かをまとめておける場所になればいいかなーと思いま…