ベスパリブ

プログラミングを主とした日記・備忘録です

ABC 133: D問題の解説 (Python3)

問題:AtCoder Beginner Contest 133: D - Rain Flows into Dams 公式解説PDF:https://img.atcoder.jp/abc133/editorial.pdf 公式解説動画:https://youtu.be/8uowVvQ_-Mo?t=3228 解説 考察問題です。数式を変換してXに対する漸化式を導きます。 以下の解説…

ABC 131: D問題の解説 (Python3)

問題:AtCoder Beginner Contest 131: D - Megalomania 公式解説PDF:https://img.atcoder.jp/abc131/editorial.pdf 公式解説動画:https://youtu.be/XI8exXVxZ-Q?t=4046 解説 締切が早い仕事から順に終わらせていく貪欲法です。割と直感で思いつく解法です…

ABC 136: D問題の解説 (Python3)

問題:AtCoder Beginner Contest 136: D - Gathering Children 公式解説PDF:https://img.atcoder.jp/abc136/editorial.pdf 公式解説動画:https://youtu.be/lyHk98daDJo?t=3172 解説 発想としてはランレングス法です。 S=RRRL という例を考えます。 i=0の人…

ABC 031: C問題の解説 (Python3)

問題:AtCoder Beginner Contest 031: C - 数列ゲーム 公式解説PDF:https://www.slideshare.net/chokudai/abc031 公式解説動画:なし 解説1:力技 Nは高々50なので、 くらいまでいけそうだとあたりをつけます。 全探索で、問題をシミュレートして高橋のとり…

ABC 140: D問題の解説 (Python3)

問題:AtCoder Beginner Contest 140: D - Face Produces Unhappiness 公式解説PDF:https://img.atcoder.jp/abc140/editorial.pdf 公式解説動画:https://youtu.be/VSeggcnxwrc?t=3564 ABC140のD問題のPython3による解説です。 初見では全くわからず、解説…

pywintypes.com_error: (-2147352561, 'パラメーターはオプションではありません。', None, None) エラーの意味

File "test/test_main.py", line 225, in hoge wp = wps.AddByPoint() File "C:\Users\XXXX\AppData\Local\Temp\gen_py\3.7\D98A091D-3A0F-4C3E-B36E-61F62068D488x0x1x0.py", line 125299, in AddByPoint , Construction) pywintypes.com_error: (-21473525…

ABC 129: D問題の解説 (Python3)

問題:AtCoder Beginner Contest 129: D - Lamp 公式解説PDF:https://img.atcoder.jp/abc129/editorial.pdf 公式解説動画:https://youtu.be/L8grWxBlIZ4?t=4363 ABC129のD問題のPython3による解説です。 解説 DP問題です。 これは公式の解説動画がとてもわ…

ABC 130: D問題の解説 (Python3)

問題:AtCoder Beginner Contest 130: D - Enough Array 公式解説PDF:https://img.atcoder.jp/abc130/editorial.pdf 公式解説動画:https://youtu.be/ERZuLAxZffQ?t=2473 解説 ABC130のD問題の解説です。しゃくとり法の問題です。 8 10 6 1 2 7 10 1 2 1 と…

ABC140: C問題の解説 (Python3)

問題:AtCoder Beginner Contest 140: C - Maximal Value 公式解説PDF:https://img.atcoder.jp/abc140/editorial.pdf 公式解説動画:https://youtu.be/VSeggcnxwrc?t=2461 解説 ABC140のC問題の解説です。貪欲法(?)問題です。 数列 を リストAsに、数列 …

重複組み合わせの考え方

mathtrain.jp 例題1 青,赤,黒の三種類の玉がたくさんある。この中から4つ玉を選ぶときに得られる色のパターンが何通りあるか求めよ。 重複組合せを考えるときは、仕切りを引く方法に置き換えるとわかりやすい。 ○ ○ ○ ○ | | ○ ○ ○ | ○ | ○ ○ ○ | | ○ ... |…

ABC032: C問題の解説 (Python3)

問題:AtCoder Beginner Contest 032: C - 列 公式解説:https://www.slideshare.net/chokudai/abc032 しゃくとり法の問題です。 公式解説を読むと、「連続する1を圧縮する」という重要なテクニックが書かれていますが、本記事ではそうではない方法で解いて…

Python: 2進数の文字列を、float(64bitの倍精度浮動小数点数)型の数値に変換する

bin_to_double() 関数 2進数の文字列を、float(64bitの倍精度浮動小数点数)型の数値に変換する関数 double_to_bin() 関数 上の逆関数(float型の数値を、2進数の文字列に変換する関数) 詳細は以下のGistのコードを参照してください。 gist.github.com 参考 …

Python: 切り捨てはmath.floor()より//演算子を使ったほうが良いかも

環境はPython3.6.5です。 まずは以下の計算結果を見てください。 gist.github.com なぜ? float型において、有効数字が16桁以上の値を表現しようとすると誤差が生じてしまう可能性があるからです。 N//3 のような整数同士の切り捨て除算は内部処理的にint型…

Pythonでいもす法

いもす法とは いもす法(imos法)とは、長さNの1次元配列において、「ある連続する区間に、ある数vを足す」という操作をK回繰り返した結果を、計算量O(N+K)で高速に構築できる方法。 たとえば、「ある連続する区間に、1を足す」という操作を4回したい次の図の…

セキュリティ関連の参考サイトメモ

www.owasp.org

Jupyter Notebookをフォルダ右クリックで開けるようにしてくれるstart_jupyter_cm

Jupyter Notebookを起動したあと毎回フォルダ移動するのが面倒くさい。なのでstart_jupyter_cm というリポジトリをインストールします。Windows と GNONE に対応(2019/08/23現在)されています。 github.com インストール方法はリポジトリのREADMEを読めば…

Windows環境にMySQLを入れたかったけど、ネットワークが頻繁に切れるからやめた話

Windows10 64bit 環境にMySQLを入れたい。 やり方がさっぱりだったので、ドットインストールに頼りました。 ドットインストールのMySQL入門 やればわかりますが、まずはローカル環境を構築してくださいと言われます。 ドットインストールのローカル環境の構…

大阪府立大学の「アカデミックライティング入門」がとても良かった

私は大学はとっくに卒業してるのですが、大阪府立大学が学生向けに出している「アカデミックライティング入門 レポートの書き方」というPDFを読みました。私は大阪府立大学とは全く関係のない人間ですが、大学1回生のころに読んでおいたほうがいいというか、…

プライバシーポリシー

当サイトについて 当サイトに掲載されている広告・アドセンス・アクセス解析・コメント・免責事項等について、以下の内容を参照ください。 Googleアナリティクス 当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。 …

GitHubはリポジトリのコードをスキャンしてセキュリティの脆弱性を指摘してくれるらしい

公開しているGitHubのリポジトリに、ある日突然アラートが表示されました。 アラート We found a potential security vulnerability in one of your dependencies. (訳)依存関係のひとつに、セキュリティ脆弱性の可能性があるものを見つけました。 「See sec…

webpackメモ

参考 面倒なJavaScriptコードのとりまとめがこれ1つで可能に、「webpack」入門 | さくらのナレッジ Installation | webpack 公式サイト インストール npm install -D webpack npm install -D webpack-cli バージョン指定 npm install -D webpack@4.35.0 pack…

`Unhandled rejection Error: original.line and original.column are not numbers` エラーの解消

--mode=developではエラーは発生せず、--mode=productionで以下のコマンドを打つとエラーが発生した。 $ ./node_modules/webpack-cli/bin/cli.js --mode=production Unhandled rejection Error: original.line and original.column are not numbers -- you p…

pathlibのファイル操作いろいろ

pathlibとは Python 3.4以上で推奨されているファイル・パス操作のモジュール。 os.path の代替となるモジュール。 docs.python.org 使い方をよく忘れるので備忘録です。 返り値はPathオブジェクトなので、文字列に変換したかったらstr()で囲んでやります。 …

VSCode用スニペットに変換するジェネレータサイト

日本語で検索しても見つからなかった方へ。 お探しのサイトは、以下のサイトです。 snippet-generator.app AtomやSublime Textのスニペットにも変換できます。

Pythonでダイクストラ法

ダイクストラ法とは ダイクストラ法とは、「重み付きグラフにおける単一始点最短路アルゴリズム」 つまり、「始点s から各頂点i までの最短コストを求める」アルゴリズム。 使用条件は以下の通り。 負のコストがないこと 有向グラフ、無向グラフともにOK ベ…

Pythonの辞書(dict)のgetメソッドの速度を調べてみた

辞書(dict)でキーの存在確認をする際の方法としては、 in演算子を使いif文で条件分岐する get()メソッドを使う try exceptを使う(そんな人いるか?) の3種類くらいだと思います。 その中でもget()メソッドはワンライナーで書けて便利なのですが、速度的に…

Pythonのin演算子の計算量について

リスト(list)、タプル(tuple)、集合(set)、辞書(dict)にはin演算子がありますが、それぞれ計算量が違うようです。 python リスト、辞書、セット型のinを使った時の参照速度を調べてみた。 - Qiita Python Speed - www.peignot.net リスト(list) タプル(tuple…

Pythonでベルマンフォード法

ベルマンフォード法とは 蟻本によれば、「重み付き有向グラフにおける単一始点最短路アルゴリズム」 つまり、「始点s から各頂点i までの最短コストを求める」アルゴリズムです。 以下の条件で使えます。 DAG(有向グラフで閉路を持たない)である 負のコス…

行き詰まったり、やる気が起きないときの対処法

今の所の個人的なベストプラクティス 行き詰まっているとき 誰かに相談する 独り言を言う やりすぎるとクビが飛ぶらしい 歩行運動しながら考える(とにかく席を立つ) やる気が起きないとき さっさと家を出る(家にいる場合、最優先でこれをすること。家以外…

PythonでUnion-Find木

Union-Find木とは Union-FindまたはDisjoint Setとは、蟻本の言葉を借りると「グループ管理のためのデータ構造」。 ・要素aと要素bが同じグループかどうか ・aが属するグループと、bが属するグループを併合(unite)する ということをしたいときに使います。 U…