東華OJ高階題60 最大效益

2021-10-04 01:56:35 字數 1765 閱讀 2530

60 最大效益

問題描述 :

明明的爸爸開了一家小公司,公司裡有5名職員。今天,公司接待了5位客戶。明明的爸爸知道,和任何一位客戶談判並簽下合同都要花一整天的時間,而他又希望在一天之內,和這5位客戶都簽好合同。因此,明明的爸爸要求公司裡的5名職員分別與1位客戶談判。

明明的爸爸也知道,這5名職員和5位客戶的性格各不相同。因此,不同的職員與不同的客戶談判,會給公司帶來不同的經濟效益。他現在要做出乙個決策,讓5名職員分別與哪位客戶談判,才能讓公司今天的總經濟效益最大。

明明的爸爸首先做了一張5行5列的效益表,如下所示:

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

在這張效益表中,每行代表一名公司職員,每列代表乙個客戶,每行中的5個數字就表示了當該行所代表的公司職員和每位客戶談判時所能產生的效益。明明的爸爸就要通過這張效益表來決定哪位職員與哪位顧客談判,然後能夠使公司的效益最大。就拿上面這張表來看,由於無論哪位職員與哪位客戶談判,所產生的效益都是1,因此最大的效益就是5。這是最簡單的一種情況,但是當效益表裡的數字變得複雜,就很難進行選擇,到底哪種組合方式才是最優的。因此明明的爸爸求助於你,幫助他解決這個問題。

明明的爸爸的問題可以歸結為:給你一張5行5列的效益表,表中的數字均為大於等於0的整數,要求在這張表中選出5個數字,使這5個數字的和最大。(注:這5個數字分別來自表中的不同行不同列,即同一行只能選擇乙個數字,同一列也只能選擇乙個數字。)

輸入說明 :

你寫的程式要求從標準輸入裝置中讀入測試資料作為你所寫程式的輸入資料。標準輸入裝置中有多組測試資料。每組測試資料佔5行;每行包含5個正整數;第i行的第j個正整數aij代表第i名職員與第j位客戶談判能為公司帶來的經濟效益(0≤aij≤100, 1≤i,j≤5)。每組測試資料與其後一組測試資料之間沒有任何空行;第一組測試資料前面以及最後一組測試資料後面也都沒有任何空行。

輸出說明 :

對於每一組測試資料,你寫的程式要求計算出一組相應的運算結果,並將每組運算結果作為你所寫程式的輸出資料依次寫入到標準輸出裝置中。每組運算結果為乙個整數s,即這一天中公司的最大可能總經濟效益。例如:當測試資料中的所有aij(1≤i,j≤5)均為1時,運算結果s應為5。輸出時,每組運算結果s單獨佔一行,其行首和行尾都沒有任何空格或其他任何字元;每組運算結果與其後一組運算結果之間沒有任何空行或其他任何字元,第一組運算結果前面以及最後一組運算結果後面也都沒有任何空行或其他任何字元。

注:通常,顯示屏為標準輸出裝置。

輸入範例 :

98 97 96 95 94

1 2 3 4 5

11 22 33 44 55

66 77 88 99 1

13 32 64 7 86

輸出範例 :

#include

#include

int flag[6]

;//flag[i]==1代表第i列已選

int benefits[6]

[6];

intmain()

for(i=

1;i<=

5;i++

) flag[l]=0

;}flag[k]=0

;}flag[j]=0

;}flag[i]=0

;//flag[i]=flag[j]=flag[k]=flag[l]=flag[m]=0; 最多只有5次迴圈

}printf

("%d\n"

,max);}

return0;

}

東華OJ高階題28 最大與最小

28 最大與最小 問題描述 輸入說明 你寫的程式要求從標準輸入裝置中讀入測試資料作為你所寫程式的輸入資料。標準輸入裝置中有多組測試資料,每組測試資料有二行,測試資料的第一行包含個兩個整數m n 1 n m 100 m表示圓環中整數的個數,n表示要連續取出的數的個數,m和n用乙個空格隔開 測試資料的第...

東華oj 高階題第11題

11 abc數字 問題描述 明明的爸爸是一位著名的數學家同時也是一位著名的數學啟蒙老師。他經常出一些簡單而有趣的數學題目來給剛剛接觸數學的小朋友做,培養他們對數學的興趣。一天,明明的爸爸想到了這樣乙個題目。如果有a b c三個1位的正整數,那麼按以下的方法構成2個三位數 第一種方法是a為百位,b為十...

東華oj 高階題第21題

21 回文質數 問題描述 因為151既是乙個質數又是乙個回文數 從左到右和從右到左是看一樣的 所以 151 號是回文質數。寫乙個程式來找出範圍 a,b 5 a b 100,000 間的所有回文質數 輸入說明 僅 1 行 二個整數 a 和 b 5 a b 100,000 輸出說明 輸出乙個回文質數的列...