O(nm)和開心的金明一樣都是01背包,對于每顆草藥有兩種選擇,選或不選,再用滾動數(shù)組優(yōu)化。var n,m,i,j:longint; a,b,f:array[0..1000]of longint;begin read(n,m); for i:=1 to m do read(a[i],b[i]); for i:=1 to m do for j:=n downto a[i] do if f[j-a[i]]+b[i]>f[j] then f[j]:=f[j-a[i]]+b[i]; writeln(f[n]);end.