我々は、セット与えられるの果実を。各フルーツには価格とビタミン含有量ます。果物を順序付けられたペアに関連付けました。次に、ソートされたリストに価格が昇順で、ビタミン含有量が降順で含まれるように、これらの果物を配置する必要があります。F={f1,f2,f3,…,fN}NPiVifi(Pi,Vi)
例1:および。N=4F={(2,8),(5,11),(7,9),(10,2)}
すべての価格が昇順で、ビタミン含有量が降順であるようにリストを配置すると、有効なリストは次のようになります。
- [(2,8)]
- [(5,11)]
- [(7,9)]
- [(10,2)]
- [(2,8),(10,2)]
- [(5,11),(7,9)]
- [(5,11),(10,2)]
- [(7,9),(10,2)]
- [(5,11),(7,9),(10,2)]
上記のリストから、最大サイズのリストを選択したいと思います。複数のリストに最大サイズがある場合、価格の合計が最小となる最大サイズのリストを選択する必要があります。上記の例で選択する必要があるリストは、です。{(5,11),(7,9),(10,2)}
例2:およびN=10
F={(99,10),(12,23),(34,4),(10,5),(87,11),(19,10),(90,18),(43,90),(13,100),(78,65)}
この例のインスタンスに対する答えはです。[(13,100),(43,90),(78,65),(87,11),(99,10)]
これまで、これは私がしてきたことです:
- 元のリストを価格の昇順で並べ替えます。
- ソートされたリストのすべてのサブシーケンスを検索します。
- サブシーケンスが有効かどうかを確認し、すべての有効なサブシーケンスを比較してください。
ただし、これには指数関数的な時間がかかります。この問題をより効率的に解決するにはどうすればよいですか?