「連続する整数」が多い集合を管理するデータ構造! 【備忘録】

まえがき AtCoder ABC194のE-"Mex Min"を解いてたら、次のお方の記事で「ある整数の集合におけるmex(minimum excluded:集合に含まれない最小の整数)を対数時間で求められるデータ構造」を知りました。rsk0315.hatenablog.com 他の方のコードも参考にしな…

拡張フィボナッチ数列の任意の項までの和を高速に求める方法の考案

暑い日が続いていますね...。最近2025大阪万博のロゴが気になってます。 今回は掲題の内容について、高校数学の知識から実用的な(?)プログラムができたので紹介したいと思います。 少し長くなりますがお付き合いください。(未熟者ですので細かい点におい…

マイ競プロ用テンプレートの紹介

最近長めの梅雨が明けて, 日差しがきつくなりましたね...。 この記事では自分の競技プログラミングで使うテンプレートを紹介したいと思います。 実は記事を書いてる日のお昼に我ながら出来のいい「forマクロ」を考案(たぶん既出)したので布教したいと思っ…

『コンビニアイス』

金曜日の夜、男は仕事から帰ってきてマンションのドアを開けた。ようやく一週間の勤務が終わり、程よい疲れとともにアイスの入ったコンビニ袋を持って充実感に満ちていた。 買ったアイスはパルム。ハーゲンダッツを除くと男が最も好むアイスであった。バニラ…

Ubuntu 18.04 LTS で作業する前に行う準備

今回は、前回仮想マシンにインストールしたUbuntu 18.04を使いやすく設定していきます。 表示画面(画面の幅)を合わせる 日本語入力を有効にする manコマンドで表示されるものを日本語にする 共有フォルダの作成 ファイアーウォールを設定する フォントを変…

VM(VirtualBox)にLinux系OS Ubuntu 18.04をインストールする

先日学校でLinuxでのプログラムを作る課題が出たのですが、自分のPCはWindowsでした。 先生(放任的)にはVM(Virtual Machine)を使って仮想環境を構築することを勧められたのですが、正直初心者の自分には難しく、「作っては壊し、作っては壊し」を繰り返…

Union-Find木について<実践編>

またまた日が空きました.......。 前回は「Union-Find木」の内容を紹介しました。today-f.hatenablog.jp 今回は実際にAtCoderでUnion-Find木を用いて問題を解いてみたいと思います。 問題 AtCoder ABC120のD問題。(この問題で初めてUnion-Find木に出会いま…

Union-Find木について

お久しぶりです。最近ブログ書いてませんでしたね。前から記事にしておきかった「Union-Find木」についてを書いていこうと思います。(自分がUnion-Find木に出会ったのは、半年前でした......。) 「Union-Find木」とは何か? Union-Find木とは”グループ分け…

bit全探索について

今回は「bit全探索」について学びました。bit全探索は、探索する対象が2^n通りと表せるときに使えるようです。 bit全探索を使う問題を見ていきたいと思います。 問題atcoder.jp 考え方 この問題の場合、N個のスイッチのon/offの状態の組み合わせを全探索しま…

複数の要素を基準にするソートについて

先週、AtCoderのABC128に出ました。今回自分が初めて聞いた「bit全探索」を使う問題などがあり、全体的に難しく感じました。その分、反省点や得るものがありました。 今回はB問題について書いていこうと思います。 問題 atcoder.jp 考えたこと 問題は「レス…

ブログ、書き始めました。

今日からブログを書き始めてみようと思います。(周りの多くの方がブログを書かれているのをみて、感化されました。) ブログを書く目的は、「自分が吸収した知識や考え方を自分なりにまとめて書き出して、理解を深める」ということです。 未熟なものですか…

テスト、その2

ケーキの写真。 美味しいそう。

テスト

てすと、テスト。