RNQ PID39 饮食问题
//DP
function max(a,b:longint):longint; begin if a>b then exit(a) else exit(b); end; var a:array[0..40000] of longint; i,j,x,mx,c,b:longint; begin readln(c,b); a[0]:=1; mx:=0; for i:=1 to b do begin read(x); for j:=mx downto 0 do if(a[j]=1)and(j+x<=c) then begin a[j+x]:=1; mx:=max(mx,j+x); end; end; writeln(mx); end.
//DFS
var a:array[1..40] of longint; i,j,x,mx,c,b:longint; procedure DFS(n,x:longint); begin if n=b+1 then exit; if (x<=c)and(x>mx) then mx:=x; DFS(n+1,x+a[n+1]); DFS(n+1,x); end; begin readln(c,b); for i:=1 to b do read(a[i]); mx:=0; DFS(0,0); writeln(mx); end.

浙公网安备 33010602011771号