-1

私は実際に欲張りアルゴリズムを練習していますが、トップコーダーに問題があります。

問題はロバストなコンピュータシステムに関するものです。http://www.topcoder.com/stat? c = problem_statement&pm = 2235&rd = 5070

MFCとは何かわかりません。(最大障害数)?

誰かが簡単な例でMFCの説明に光を当てることができれば、それは助けになるでしょう!

ありがとう..

アカウントをお持ちでなく、リンクをたどることができない場合の質問は次のとおりです。

堅牢なコンピュータシステムでは、最も重要な要素の1つは冷却です。適切な冷却がないと、プロセッサは400℃を超える温度まで加熱される可能性があります。システムの信頼性は、システムプロセッサを危険にさらすことなく故障する可能性のあるファンの数を判断することで測定できます。各ファンには、システムを冷却するために必要な容量を示す値を割り当てることができます。また、システムを適切に冷却するためにファン容量の合計を超える必要がある最小冷却容量を定義できます。障害セットは、システムの冷却に必要のないファンのセットとして定義されています。つまり、障害セット内のファンが破損した場合でも、残りのファンによってシステムを適切に冷却できます。障害セットの数は、セット内のファンの数です。

信頼性を測定するために、最大障害セット(MFS)と最大障害カウント(MFC)の2つの値を定義します。MFSは、可能な限り最大数のファンの障害セットです。ファンのセットには、複数のMFSがある場合があります(以下を参照)。障害セットは、より高いカウントの障害セットがない場合にのみMFSです。MFCは最大値であり、カウント<=MFCのすべてのファンセットが障害セットになります。つまり、サイズがMFC以下のファンのセットは故障する可能性があり、システムは残りのファンによって適切に冷却されます。

容量1、2、3、および冷却要件が2のファンセットについて考えてみます。2つのカウントを持つ2つのMFSが存在します。ファン1と3、またはファン1と2です。ただし、ファン2と3は障害セットではありません(ファン1はそれ自体でシステムを適切に冷却できませんでした)。したがって、MFCは1です。これは、1つのファンに障害が発生した場合でも、システムを冷却できるためです。

各ファンが提供する冷却の単位数を指定するint[]容量と、システムを冷却するために必要な冷却の最小単位を指定するintminCoolingが与えられます。メソッドはint[]を返す必要があります。ここで、最初の値は最大障害セット(MFS)のファンの数であり、2番目の値は最大障害カウント(MFC)である必要があります。

4

2 に答える 2

1

システムを冷却する必要のないファンのセットを故障セットと定義します。つまり、障害セットのファンが壊れても、残りのファンによってシステムを適切に冷却できます。障害セットの数は、セット内のファンの数です。

障害セットが MFS であるのは、これより多い数の障害セットがない場合のみです。

それはすべて問題文にあります。不明な点は何ですか?

于 2011-07-13T06:18:51.980 に答える
0

問題文のように:

The MFC is the largest value such that all fan sets with count <= MFC are Failure Sets. In other words, any set of fans of size MFC or less can fail, and the system will still be properly cooled by the remaining fans.

MFC とは、n<= MFC ファンを任意に選択して故障させても、システムは必要な冷却要件を提供できることを意味します。ただし、MFC + 1 ファンを選択して故障させた場合、システムが必要な冷却要件を提供しないというケースが少なくとも 1 つあります。

TopCoder と Happy Learning で頑張ってください!

ネタバレ:

ファンの最小数 M を見つけて、それらの容量の合計が (合計容量 - 冷却要件) よりも大きくなるようにします。これらのファンは最大のものでなければならないため、貪欲なアルゴリズムの部分です。M - 1 が答えです。

于 2011-07-13T06:19:05.843 に答える