DEFINE A STRING

2 secs 1024 MB
H20

制約を緩くしたり難易度順に並べないことで難しく考えてしまわないか、問題文の文字『以下』という文字を読み飛ばしたりしてしまわないか、などひっかけで作ってみました。

Pythonによる想定解法はこちらです。

簡単に解説します。

以下の内容で全ての文字数について計算して足していきます。

  • のいずれか1つの文字を含み、残りの2文字を含まない文字列の個数

    余事象で解きます。という文字に置き換えて考えると簡単です。

  • の全ての文字を含む文字列の個数

   AtCoderで類題が存在します。ABC178 C-Ubiquity

   包除原理で解くことができます。

  • のいずれか1つ以上の文字を含む文字列の個数

    余事象で解きます。一番簡単な問題ですが、順序的に一番難しく考えないといけないと勘違いしないかと思い最後にしてみました。

    (引っかかる人いたら嬉しいです)