簽約棒球運動員

2021-09-16 23:29:19 字數 1172 閱讀 6159

假設你是一支棒球大聯盟球隊的總經理。在賽季休季期間,你需要簽入一些自由球員。球隊老闆給你的預算為x美元,你可以使用少於x美元來簽入球員,但如果超支,球隊老闆就會解雇你。

你正在考慮在n個不同位置簽入球員,在每個位置上,有p個該位置的自由球員供你選擇。由於你不希望任何位置過於臃腫,因此每個位置最多簽入一名球員(如果在某個特定位置上你沒有簽入任何球員,則意味著計畫繼續使用現有球員)。

為了確定一名球員的價值,你決定使用一種稱為「vorp」,或「球員替換價值」的統計評價指標。球員的vorp值越高,其價值越高。但vorp值高的球員簽約費用並不一定比vorp值低的球員高,因為還有球員價值之外的因素影響簽約費用。

對於每個可選擇的自由球員,你知道他的三方面資訊:

1.他打哪個位置。2.他的簽約費用。3.他的vorp。

設計乙個球員選擇演算法,是的總簽約費用不超過x美元,而球員的總vorp最大。你可以假定每位球員的簽約費用是10萬美元的整數倍。演算法應輸出簽約球員的總vorp值,總簽約費用,以及球員名單。分析演算法的時間和空間複雜度。

狀態轉移函式如下:

$$value[i,x]=

begin

max limits_ (candidate.vorp) & text\

max (candidate.vorp+value[i+1,x-candidate.cost]))} & text;

void candidate_vorp(player **candidate,int n,int p,int total) //total表示揹包總重量

//player[n][p] 在n個不同位置上,有p個球員供你選擇

//表示揹包的資料value[position i][package capacity],即揹包的總價值

//who[position i][package capacity]用來儲存這個容量的揹包,這個位置的放置情況}}

//對剩下的n-1個位置進行放置

for(int i=n-1;i>=1;i--)}}

}cout<

amount=amount-candidate[i][k].cost;

}//迴圈結束的時候 amount表示剩下多少錢?花掉多少錢用總價減去amount

}cout<

從google doc轉移 排球運動員站位

using system using system.collections.generic using system.io using system.text namespace zbodo.acm private void putplayer int player putplayer player...

運動員指派問題

用lingo解決 運動員指派問題 如下 model 運動員指派問題 5 persons and 4 jobs assignment problem sets person 1.5 job 1.4 assign person,job c,x endsets here are the parameter...

Oracle SQL語句(運動員)

drop table athlete create table athlete ano char 10 not null primary key,aname char 20 a char 5 ateam char 16 insert into athlete values 1001 金賢重 男 大連...