反應堆問題

2022-07-17 16:54:16 字數 1185 閱讀 7214

維克多博士創造了乙個裂變反應堆,可取用處於液體狀態的放射性物質。反應堆的容量是v加侖。他有n瓶的放射性液體,每個都有一定的質量和一定的體積。當液體倒入反應堆時,也產生一些單位的能量。現在,維克多想要將能量輸出最大化。但是,有乙個限制條件。他研究了原子元素的物理知識和歷史,認識到反應堆內放射性液體的總量不能超過特定的臨界質量m,否則反應就會失控,並引發劇烈的**。

寫乙個演算法,幫助他從反應堆獲得最大的能量,而不會讓他丟掉性命。

該函式/方法的輸入包括六個引數——

reactorcap,乙個整數,表示反應堆的容量(v);

numberofradliquid,乙個整數,表示現有小瓶的數量(n);

criticalmass,乙個整數,表示反應堆的最大臨界質量(m);

volumes,乙個整數列表,按順序表示n份放射性液體的體積;

masses,乙個整數列表,按順序表示n份放射性液體的質量;

energies,乙個整數列表,按順序表示n份放射性液體產生的能量。

返回乙個整數,表示可在給定的約束條件下從反應堆中產生的最大能量。

1=思路:可以用01揹包問題的思路進行求解。

關於01揹包問題的詳細解析,可參考

本題的階梯**如下:

int find(int reactorcap, int numberofradliquid, int criticalmass,

int volumes, int masses, int energies)

else

}else

else }}

} }return fn[numberofradliquid-1][criticalmass-1][reactorcap-1];

}int main()

;//體積

int masses[5] = ;//質量

int energies[5] = ;//能量

int sum_energies = find(reactorcap, numberofradliquid, criticalmass,

volumes, masses, energies);

cout << sum_energies << endl;

return 0;

}

[1] 經典揹包問題的**

[2] 揹包問題

[3] 徹底理解01揹包問題

反應堆模式

1 定義 反應堆模式是一種物件行為類的設計模式,對同步事件分揀和派發。它是處理併發i o比較常見的一種模式,用於同步i o。其中心思想是將所有要處理的i o事件註冊到乙個中心i o多路復用器上,同時主線程阻塞在多路復用器上 一旦有i o事件到來或者是準備就緒,多路復用器返回並將相應的i o事件分發到...

reactor 反應堆模型

1.reactor模型,本質上講管理網路io 使用下面這個結構用來管理我們的io struct ntyreactor 下面這段 比較核心 我們關心的事件與發生的事件發生時,才去呼叫 2.實現 include include include include include include includ...

epoll反應堆模型

參考 參考 求職期間,還是得好好學習。看了大概的思路,自己理解著敲一下。和原來 的有些地方不同。include include include include include include include include include define max events 1024 監聽上限 de...