要素のセットについては、可能なすべての要素サブセットk
を見つける必要があります。n
(n < k)
この問題にどのようにアプローチすればよいですか?
ちょうど提案が役に立ちます ありがとう!
要素のセットについては、可能なすべての要素サブセットk
を見つける必要があります。n
(n < k)
この問題にどのようにアプローチすればよいですか?
ちょうど提案が役に立ちます ありがとう!
これはトップコーダーのアルゴリズム チュートリアルで見ました。時間をかけて、その仕組みを理解してください。
{0, 1, … N-1} のすべての k 要素サブセットを反復します
int s = (1 << k) - 1;
while (!(s & 1 << N))
{
// do stuff with s
int lo = s & ~(s - 1); // lowest one bit
int lz = (s + lo) & ~s; // lowest zero bit above lo
s |= lz; // add lz to the set
s &= ~(lz - 1); // reset bits below lz
s |= (lz / lo / 2) - 1; // put back right number of bits at end
}