Ex4-22 單射函數問題
« 問題描述:
設函數f將點集S = {0,1, , n -1}映射為f (S) = { f (i) | iÎ S} Í S 。單射函數問題要
從S中選取最大子集X Í S 使f (X )是單射函數。
例如,當n=7, f (S) = {1,0,0,2,2,3,6} Í S 時, X = {0,1,6} Í S 是所求的最大子集。
« 編程任務:
對于給定的點集S = {0,1, , n -1}上函數f,試用抽象數據類型隊列,設計一個O(n)時
間算法,計算f的最大單射子集。
« 數據輸入:
由文件input.txt 提供輸入數據。文件的第1 行有1 個正整數n,表示給定的點集
S = {0,1, , n -1}。第2 行是f (i)的值,0 £ i < n。
« 結果輸出:
程序運行結束時,將計算出的f的最大單射子集的大小輸出到output.txt中。
輸入文件示例 輸出文件示例
input.txt
7
1 0 0 2 2 3 6
output.txt
3
標簽:
Iacute
61516
laquo
Icirc
上傳時間:
2016-05-28
上傳用戶:tyler
兩臺處理機A 和B處理n個作業。設第i個作業交給機器
A 處理時需要時間ai,若由機器B 來處理,則需要時間bi。由于各作
業的特點和機器的性能關系,很可能對于某些i,有ai >=bi,而對于
某些j,j!=i,有aj<bj。既不能將一個作業分開由兩臺機器處理,也沒
有一臺機器能同時處理2 個作業。設計一個動態規劃算法,使得這兩
臺機器處理完成這n 個作業的時間最短(從任何一臺機器開工到最后
一臺機器停工的總時間)。研究一個實例:(a1,a2,a3,a4,a5,a6)=
(2,5,7,10,5,2);(b1,b2,b3,b4,b5,b6)=(3,8,4,11,3,4)
標簽:
處理機
機器
上傳時間:
2014-01-14
上傳用戶:獨孤求源