徒然

思いついたら書きます

マンカラのシミュレーターを作ってみた

はじめに QuizKnockの動画に触発され、鶴崎さんが作っていたWeb上で遊べるマンカラシミュレーターを自分も作ってみたという記事です。

ABC332 E - Lucky bag 半分全列挙解法

AtCoder Beginner Contest 332 E - Lucky bagを半分全列挙で解いたので解法を書いておきます。

PMP試験に合格しました

はじめに 先日PMP®試験に合格しましたので、備忘を兼ねて体験記を書いていきます。

情報処理技術者試験の開示請求をしてみた話

はじめに 令和5年度春期の情報処理技術者試験が終わってやることがなくなったタイミングで、以前の試験の答案の開示請求をしてみようと思い立ちました。 しかしIPAの個人情報に関する開示請求ページを見てもよくわからなくて一度挫折した経験がありました。 …

「確率 mod 998244353」とか「期待値 mod 998244353」って何なの?という話

はじめに 分数のmodって何?AtCoderの注釈を読んでも意味わからないんだけど?といった方向けの記事です。 なおこの記事上は法(998244353や1000000007など)が素数であることを前提とします。

可変長配列からランダムに要素を取り出したいときのTips

はじめに Pythonならlist、c++ならvectorのような可変長配列からランダムに要素を取り出したいときはどうすればよいでしょうか? ランダムに要素を選んで取り出したいところですが、可変長配列から要素を取り出す操作はかかってしまいます。 そんなときは、…

Mo's Algorithmのイメージを視覚的に理解したい

はじめに Mo's AlgorithmはABC242-GやABC293-Gで出題され、典型アルゴリズムとなりつつあります。 一度理解すれば納得しやすいアルゴリズムなのですが、初めて学習したときに巷の図では個人的に分かりにくかったのでブログ内で整理してみました。

AtCoder Beginner Contest 292 F - Regular Triangle Inside a Rectangle 解説

はじめに ABC292のF問題で幾何問題が出ました。 自分は他の方と解答アプローチが異なったので解説記事を書いてみます。

Pythonで動くエラトステネスの篩をさらに高速化してみた話

はじめに 以前の記事でエラトステネスの篩を作成しました。 しかしこの篩ではLibrary CheckerのEnumerate PrimesでTLEしてしまいます。 そこで本記事では篩のさらなる改良を目指します。

Pythonのfractions.Fraction.__hash__が遅いっぽいという話

AtCoder Beginner Contest 168 E - ∙ (Bullet)を解いていたときに気づいた話です。 atcoder.jp

AtCoder青色になりました

トヨタ自動車プログラミングコンテスト2022(AtCoder Beginner Contest 270)にて、AtCoder開始以来ずっと目標にしていた青コーダーになりました! 初参加から3年少々かかりました。 青コーダーになりました!!!strangerxxxさんのトヨタ自動車プログラミング…

AtCoder上でscikit-learnを使って機械学習してみたい

はじめに 皆さんはAtCoderでscikit-learnが使えるのをご存知でしょうか? 現在*1のAtCoderでは以下のライブラリが利用できます。 numba, numpy, scipy, scikit-learn, networkx 今回はせっかくなのでscikit-learnを利用して問題を解いてみました。 *1:2022年…

Pythonで使えるnext_permutationを実装してみた

今まで配列列挙ではitertools.permutationsに任せきりだったのですが、仕組みを知りたかったので自作してみました。 辞書順で次の組み合わせが欲しいとか、重複なしの組み合わせを列挙したいとか*1、C++に慣れているのでnext_permutation準拠のコードを書き…

システムアーキテクト試験とプロジェクトマネージャ試験に合格しました

令和3年度(2021年度)春期試験でシステムアーキテクト試験、秋期試験でプロジェクトマネージャ試験に合格しました。 せっかくなので感想や対策法などをまとめておきます。

AtCoderで始めるCOBOL入門 ~演習編~

はじめに 前々回の記事、前回の記事でCOBOLの基礎知識について記載してきました。 では実際に、AtCoderに登録したら解くべき精選過去問10問ことAtCoder Beginners Selectionの問題を解いていきます。

AtCoderで始めるCOBOL入門 ~演算・関数編~

はじめに 前回の記事ではCOBOLの概要や入出力の方法を記載しました。 本記事はその続きで、COBOLの演算文法や関数を記載します。 前回記事同様、目的はAtCoderの問題を解くことなので、解くのに必要ない仕様についてはほぼ触れません。 また筆者はにわかコボ…

AtCoderで始めるCOBOL入門 ~概要・入出力編~

はじめに 1959年に産声を上げたプログラミング言語であるCOBOLは、今なお世界中で動いています。 しかし今ではレガシーシステムの代表格に取り上げられており、COBOLを使うエンジニアもどんどん高齢化しています。 当然ナウなヤングにバカウケである競技プロ…

scipyで最大流問題を解く

はじめに scipyにはsparse.csgraph.maximum_flowが用意されていて最大流問題が解けるようになっています。 しかしこれといって日本語の解説記事が見当たらないので書いてみます。 docs.scipy.org

いもす法をpythonのclassで書いてみた

はじめに いもす法は割と競プロの中ではメジャーなアルゴリズムですが、毎回書くよりclassで書いたほうが楽じゃないのと思ったけど誰もpythonで書いてなさそうだったので自分で書いてみてみたってやつです。

NKODICEのOCHINCHIN確率問題を動的計画法で解く

はじめに ここ数日NKODICEというダイスゲームが流行っています。 store.steampowered.com これはチンチロリンのように日本語が書かれた6面体サイコロを振って美しい日本語を作るゲームですが、ダイスを振って出た目で「お」「ち」「ん」「ち」「ん」を作れる…

高速で正しく動くエラトステネスの篩をPythonで書く

はじめに 「エラトステネスの篩 python」で検索すると色々実装されたものが出てきますが、一番上に出てくるページのコードは遅い実装である上にコード自体が間違っているという始末です(どのページかは伏せますがmax=4にすると4が素数判定されるのが1つの反…

嬉野流対策の端角棒銀研究

はじめに 嬉野流への対策には棒銀が有効とされており、特に以下の記事は必見です。 west-shogi.com しかし先の記事で深堀りされていない変化で負けることも多いので、研究ついでに記事を書いてみました。

scipy.optimize.bisectを使った二分法を競プロで使う

はじめに 今日のyukicoder contest 246で関数の二分法に関する問題が出ました。 競プロPython勢ではAtCoderのD - 高橋君ボール1号をニュートン法(scipy.optimize.newton)で解く方法が有名かとは思いますが、二分法でもscipyのモジュールで解けるようなので使…

scipyでABC061 D Score Attackを解こうとして解けなかった話

はじめに 今までAtCoderをやってきて最短経路問題を避けてきたのですが、レート水色目前にしてようやく重い腰を上げFloyd-Warshall法やDijkstra法などを勉強しました。 その中で最短経路問題を解くのにscipyのライブラリを使えることを知りました。 note.nkm…

AtCoder practice contest B - Interactive SortingをPythonで解く

はじめに AtCoder practice contest B - Interactive SortingをPythonで解いた記事が見つからないので、簡単に解説してみます。

「AWS 認定ソリューションアーキテクト – アソシエイト」試験に合格しました

はじめに AWS 認定ソリューションアーキテクト – アソシエイト試験(通称SAA)に合格したのでこの記事を書いてます。

Foxy Gesturesで上の階層へ移動させる

Firefox 57.0(Quantum)の正式版がきましたね。 アドオンがWebExtensionsに移行されるということで、殆どのアドオンが使えなくなると心配されていましたが、なんだかんだで多数のアドオンが新式になって安心しているところです。 しかし私がChromeに移行でき…