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

ABC332挑戦記(C/D問題)

C問題の実装に若干手間取ったのと1か所の考慮漏れにより1WAを食らったことが大きく響いた。解説で示された内容自体は比較的容易に理解できるものだっただけに、本番中にD問題でACを獲得するための勉強が足らず4000位代という結果に終わったのが頗る悔やまれ…

ABC331挑戦記(C問題)

↓問題のページ↓ AtCoder Beginner Contest 331 C - Sum of Numbers Greater Than Me ぱっと見ですぐには解法を思い浮かべられなかったので体感C問題にしてはやや難しい方かなと思ったが、AtCoder Problemsの統計を見ると灰色なのでさっさと解けなければなら…

ABC326挑戦記(D問題)

↓問題のページ↓ AtCoder Beginner Contest 326 D - ABC Puzzle 最終的にはこの問題に敗北し、終了後に kyopro_friends氏による公式解説 の通りに実装した(これに伴い、 既存の順列全探索用ライブラリ を改良し、複数の順列に対しても全探索を実行可能とした…

Java向け競プロライブラリ(構成文字で並べ替えた文字列)

以下の問題を解くための手法として「2つの文字列S, Tについて、Sの各文字を並べ替えてTに一致させられるかを考える場合、SとTの各文字を昇順に並べ替えてできる文字列どうしを比較して一致しているかどうかを判定する」と公式で解説されており、ライブラリを…

Java向け競プロライブラリ(一致文字列長)

以下の問題を解くための手法として「2つの文字列を順方向・逆方向それぞれに走査し、一致する部分の最大長を求める」というものが公式解説に用意されており、ほとんど典型手法と見なされている(諸説あり)にもかかわらず、ライブラリを用意していなかったの…

Java向け競プロライブラリ(ランレングス)

文字列をランレングス圧縮すると解きやすい問題向けのライブラリです。なお、本記事では自前ライブラリのPairを利用しています(以下参照)。 Java向け競プロライブラリ(ペア) - JunKobayashi’s diary 例えば以下の問題で役に立ちます。 AtCoder Beginner Co…

Java向け競プロライブラリ(順列)

まずは、1つの順列のみを必要とする問題で使用するクラス(ただし、 \begin{align} 10! &= 3628800 < 3.7\times 10^6\\ 11! &= 39916800 < 4\times 10^7\\ 12! &= 479001600 > 4.7\times 10^8 \end{align} を考慮すると、探索範囲の大きさが1つの順列のみに…

Java SE 11 Gold 自分用メモ(3)

並行処理:シングルコアのCPUで見られる。実行すべき複数の処理が存在する時、一定の時間(0.1秒とか0.01秒とか)が経過するごとに実行する処理を切り替えることにより実現する(ある瞬間だけを切り取ると実行している処理は当然1つのみ) 並列処理:マルチコア…

Java SE 11 Gold 自分用メモ(2)

java.util.functionパッケージの関数型インタフェースのうち、名前が「Bi」で始まっているものは、「Bi」を取り去った名前の関数型インタフェースが、引数を2つ受け取り、それらを処理に使用するように変わったもの(命名パターンに関しての例外:UnaryOperat…

Java SE 11 Gold 自分用メモ(1)

インナークラス・staticインナークラスともに、全アクセス修飾子(public/protected/private)、final、abstract付与可能 ローカルクラス(メソッド内で一時的に定義されるクラス)はfinalとabstractのみ付与可能、匿名クラスはアクセス修飾子、final、abstract…