-1

要素のセットについては、可能なすべての要素サブセットkを見つける必要があります。n(n < k)

この問題にどのようにアプローチすればよいですか?

ちょうど提案が役に立ちます ありがとう!

4

3 に答える 3

4

これはトップコーダーのアルゴリズム チュートリアルで見ました。時間をかけて、その仕組みを理解してください。

{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
   }
于 2013-07-02T21:11:04.523 に答える