救护伤员
Problem
無情的海嘯奪取了無數(shù)人的生命.很多的醫(yī)療隊被派往災(zāi)區(qū)拯救傷員.就在此時,醫(yī)療隊突然發(fā)現(xiàn)自己帶的藥品已經(jīng)不夠用了,只剩下了N種。(1 < n <= 10),隨著病人病情的發(fā)展,每種藥在每天能獲得的效果是不一樣的。同時,每天病人只能服用一種藥。也就是說,這些藥還夠支持N天。現(xiàn)在,給出你每種藥在每天使用的效果,請你判斷當(dāng)每種藥都用完后所有藥達到的效果之和最大可以是多少。
Input
第一行是一個整數(shù)N(1<n<=10) 接下來n行,每行n個整數(shù),第i行j列的整數(shù)表示第j種藥在第i天的效果 c(i,j),(0<=c(i,j)<=100)
Output
一個整數(shù),表示最大的效果之和
Sample Input
3
1 2 3
2 5 3
0 7 1
Sample Output
12
思路:
看了范圍,n很小,so...
搜索..
從第1行每一個點出發(fā),分別搜索,求最值.
1 Var 2 Used:Array[0..11] of Boolean; 3 a:Array[0..11,0..11] of longint; 4 i,j,n,DC,DA:longint; 5 Procedure Search(x,y:longint); 6 Var 7 i:longint; 8 Begin 9 if x=n Then Begin if DC>DA Then DA:=DC; Exit; End; 10 For i:=1 to n do 11 Begin 12 if Not Used[i] Then 13 Begin 14 Used[i]:=True; 15 DC:=DC+a[x+1,i]; 16 Search(x+1,i); 17 Used[i]:=False; 18 DC:=DC-a[x+1,i]; 19 End; 20 End; 21 End; 22 Begin 23 Read(n); 24 For i:=1 to n do 25 For j:=1 to n do 26 Read(a[i,j]); 27 i:=1; 28 For j:=1 to n do 29 Begin 30 FillChar(Used,SizeOf(Used),False); 31 Used[j]:=True; 32 DC:=a[i,j]; 33 Search(i,j); 34 if DC>DA Then DA:=DC; 35 End; 36 Writeln(DA); 37 End.?
| ? |
| ||
?
轉(zhuǎn)載于:https://www.cnblogs.com/Catch-22/archive/2012/11/04/2754197.html
總結(jié)
- 上一篇: 七大你可能不知道的 Chrome 使用技
- 下一篇: 第一周周日DailyReporting—