我的做法是找出n種菜中最貴的**k,把揹包的容量m增加的到m+k
然後對**排個序,因為dp是從第乙個菜到最後乙個菜,越貴的菜越後選結果越小,然後進行dp
#include #include #include #include using namespace std;
const int maxn=1010;
int w[maxn],dp[maxn][maxn],n,m;
int main()
sort(w+1,w+n+1);
scanf("%d",&m);
memset(dp,0,sizeof(dp));
int ans=m;
if(m>=5)
for (int i=1;i<=n;++i)else
}} printf("%d\n",ans);
} return 0;
}
HDU2546 飯卡 01揹包
problem description 電子科大本部食堂的飯卡有一種很詭異的設計,即在購買之前判斷餘額。如果購買乙個商品之前,卡上的剩餘金額大於或等於5元,就一定可以購買成功 即使購買後卡上餘額為負 否則無法購買 即使金額足夠 所以大家都希望盡量使卡上的餘額最少。某天,食堂中有n種菜 每種菜可購買一...
hdu2546飯卡 01揹包
problem description 電子科大本部食堂的飯卡有一種很詭異的設計,即在購買之前判斷餘額。如果購買乙個商品之前,卡上的剩餘金額大於或等於5元,就一定可以購買成功 即使購買後卡上餘額為負 否則無法購買 即使金額足夠 所以大家都希望盡量使卡上的餘額最少。某天,食堂中有n種菜 每種菜可購買一...
hdu 2546 飯卡 0 1揹包
飯卡 description 電子科大本部食堂的飯卡有一種很詭異的設計,即在購買之前判斷餘額。如果購買乙個商品之前,卡上的剩餘金額大於或等於5元,就一定可以購買成功 即使購買後卡上餘額為負 否則無法購買 即使金額足夠 所以大家都希望盡量使卡上的餘額最少。某天,食堂中有n種菜 每種菜可購買一次。已知每...