AtCoderやCodeforcesの問題解説記事が多め。個の点のうちいくつ含まれるかを考え、それを全て合計したものを求めよ。部分集合の数が多すぎますね。まともに列挙するのは到底無理です。これをこうひっくり返します。個のうちいくつあるかを考え、それを全て合計したものを求めよ。このように「XについてYを数えたものを合計する」を「YについてXを数えたものを合計する」と言い換えるのはとても重要なテクニックの1つです。Xの要素数が膨大でYの要素数が比較的小さい場合、ひっくり返すと見通しが良くなることが多いです。含まれるような部分集合の個数を数えることを考えます。自身が部分集合に含まれるときは残りの点の選び方に関わらずOKです。部分集合に含まない場合を考えます。見て左上にある点と、右下にある点がともに1個以上選ばれている。見て右上にある点と、左下にある点がともに1個以上選ばれている。この少なくとも一方が満たされることです。含まれるかどうかが決まります。名前を付け、「その領域に1個以上点が含まれている」という事象を同じ記号で表すことにします。表記することにします。用いてと等しくなります。これで「かつ」条件だけで求められる式になりました。それぞれの領域について点の選び方は実質的に独立に決めて良いので、各領域ごとにその領域に含まれる点の「全ての選び方の数」と「1個以上選ぶような選び方の数」を求めることができればこの場合の数を求めることができます。※「実質的に独立に決めて良い」と書いたのは、問題文では「空でない」部分集合に限定しているので厳密には独立ではないという意味ですが、空集合は答えに算入しないと思うことにすればこれは考慮しなくて良いです。真上・真下・真横に他の点が存在しないので、4領域が重複なくきれいに分かれるようになっています。