Java

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…

Java向け競プロライブラリ(ペア)

ソート可能なペアとして入力値を取り扱うと解きやすい問題向けのライブラリです。必要ならば、問題の条件に適合するようにソート条件を変更して使います。 例えば以下の問題で役に立ちます。 AtCoder Beginner Contest 256 D - Union of Interval 2023/09/18…

Java向け競プロライブラリ(素数)

素数が絡んでくる問題向けのライブラリです。 問題の制約に合わせて適宜sieveSizeの値を変更して使用します。 例えば以下の問題で役に立ちます。 AtCoder Beginner Contest 250 D - 250-like Number AtCoder Beginner Contest 254 D - Together Square impor…

Java向け競プロライブラリ(最大公約数・最小公倍数・約数洗い出し)

最大公約数・最小公倍数が絡んでくる問題向けライブラリです 例えば以下の問題で役に立ちます AtCoder Beginner Contest 162 C - Sum of gcd of Tuples (Easy) AtCoder Beginner Contest 253 D - FizzBuzz Sum Hard final class GcdLcmCalculator { /** * ユ…

Java向け競プロライブラリ(Bit全探索)

要素数が20以下程度の配列で入力される場合に思い浮かべておくと得につながりがちな気がします。 例えば以下の問題で使用するとよいです。 AtCoder Beginner Contest 249 C - Just K final class BitWholeSearchHelper { public static String getBinaryStri…

Java向け競プロライブラリ(幅優先探索)

幅優先探索を使用する問題向けのライブラリです。例えば以下のような問題に対して使用すると有用です。 AtCoder Beginner Contest 007 C - 幅優先探索 AtCoder Beginner Contest 204 C - Tour import java.util.ArrayDeque; import java.util.ArrayList; imp…

Java向け競プロライブラリ(二分探索)

java.util.ArraysクラスにbinarySearchメソッドは実装されていますが、「keyで指定された要素を複数持つ場合にはどれが返されるか保証されていない」という使い道に困り果てそうな実装であるため、自前でライブラリを持っておくべきかと思われます Arrays (J…

Javaで日付を表す文字列がカレンダーに即しているか判定する

見出しの通りの機能を持つクラスです。必要に応じてYMDのパターンと正規表現を追加していけばいい感じに使えると思います。isOnCalendarメソッドを呼び出せば判定できます。 import java.text.ParseException; import java.text.SimpleDateFormat; import ja…

EclipseとWebSphere Libertyを使ったWebアプリケーション開発環境構築

※自分用のメモも兼ねています 1.Eclipseをインストール Pleiades All in Oneダウンロードを使ってFull Editionを取得(ゆとりとか言うのはNG) https://mergedoc.osdn.jp/ Fig. 1 Pleiadesを利用しEclipseを取得 Fig. 2 各人のOSに合わせて取得(私は64bit Wi…