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

Macbook Proのキーボードのチャタリングが直らなくてキレたのでソフトウェア的に直した話

タイトルの通りです。 つい3ヶ月ほど前に購入したMacbook Pro 2018ですが、キーボードの特定のキーが一定確率で2回押されてしまうという不具合を踏みました。 調べてみると何件か同様の症状を訴えている記事を見かけたので、よくあるハードウェアの不具合な…

AtCoder Grand Contest 029

久しぶりのAGCでDまで時間をかけて考察したので残しておこうと思う。 本番は比較的速い時間にBを通すことができたので青パフォを得ることができた。 欲を言えばDは通せたなーと思ったが、まぁいいでしょう。 A - Irreversible operation WとBを何回入れ替え…

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