2018-10-01から1ヶ月間の記事一覧

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/新規スクリプトを選択す…